Android app does not connect to local webservice

0

I'm studying webservices but I came across a problem, the API works, because I can already enter data in the database, I'm using wamp, but in the app, I follow several steps and it just does not send, always error sending, but not points out mistakes by ide. I'm looking for but have not yet found a solution.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    //objeto view
    View vista= inflater.inflate(R.layout.fragment_registrar_curso_fragmento, container, false);
    campoCodigo = vista.findViewById(R.id.campoCodigo);
    campoNome = vista.findViewById(R.id.campoNome);
    campoCategoria = vista.findViewById(R.id.campoCategoria);
    campoProfessor = vista.findViewById(R.id.campoProfessor);
    botaoRegistrar = vista.findViewById(R.id.btnRegistrar);
    //Utilizando via volly o método request
    //Intância um objeto request que vai receber requisoções tipo volley
    request = Volley.newRequestQueue(getContext());

botaoRegistrar.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        carregarWEBService();
    }
});
return vista;
}

private void carregarWEBService(){
    //barra de progresso
    progresso = new ProgressDialog(getContext());
    progresso.setMessage("Carregando...");
    progresso.show();

String ipPC = "192.168.2.162";//para testes e uso do servidor local

//String para armazenar a url do banco com suas determinadas variaveis capturadas dos RditsTextes
String url = "http://192.168.2.162/webservices/registro.php?codigo="+campoCodigo.getText().toString()+
        "&nome="+campoNome.getText().toString()+"&categoria="+campoCategoria.getText().toString()+
        "&professor="+campoProfessor.getText().toString()+"";
//Retira os espaços da url com método replace
url = url.replace(" ","%20");//@param 1 campo que quer "substituir" @param2 "substituto" %20 que seria sem espaço
//Ler e processar url com JsonObjectRequest
jsonObjectReq = new JsonObjectRequest(Request.Method.GET, url,null,this,this);
request.add(jsonObjectReq);
}

Here are the methods in case of error or in case of success, in case it always executes the error Toast

//em caso de erro do request
@Override
public void onErrorResponse(VolleyError error) {
    //caso ocorra erro dispensaremos o progress
    progresso.hide();
    Toast.makeText(getContext(),"Não foi possivel conectar ao servidor",Toast.LENGTH_SHORT).show();
}
//sucesoo do resquest
@Override
public void onResponse(JSONObject response) {
    progresso.hide();//se er certo vai esconder seu objeto
    Toast.makeText(getContext(),"Cadastrado com sucesso",Toast.LENGTH_SHORT).show();
    campoCodigo.setText("");
    campoNome.setText("");
    campoCategoria.setText("");
    campoProfessor.setText("");

}

And here's the registry.php

<?php

include "conexao.php";

$json = array();
//<!-- condição se os dados foram enviados ou não-->
if (isset($_GET["codigo"]) && isset($_GET["nome"]) && isset($_GET["categoria"]) && isset($_GET["professor"])) {
//  <!-- recebendo dados via get 
//  *Método $_GET recebe via formulario no caso os edit texts do android 
//  -->
    $codigo = $_GET["codigo"];
    $nome = $_GET["nome"];
    $categoria = $_GET["categoria"];
    $professor = $_GET["professor"];

    //Variavel que armazena aquery de upload
    $inserir = "INSERT INTO curso (codigo,nome,categoria,professor) VALUES ('{$codigo}','{$nome}','{$categoria}','{$professor}')";
    // Variavel pra executar essa query que guarda a funçao mmysqli_query que é responsavel por executar as querys
    $resultado_inserir = mysqli_query($conexao,$inserir); //@param1 a conexao @param2 a query que sera exexutada no caso a de inserir

    //verifica se a query foi mesmo executada e os dados inseridos no banco
    if ($resultado_inserir) {
        //Recuperando dados
        $consulta = "SELECT * FROM curso WHERE codigo = '{$codigo}'"; 
        //Executa a query de consulta
        $resultado = mysqli_query($conexao,$consulta);
        if ($registro = mysqli_fetch_array($resultado)) {// verifica se deu certo uma consulta (select) deve ser feita atraves da função mysql_fatch_array e armazena o numero de ocorrencias em registro (o correto é um pelo código ser unico)
            //Array jason carrega todos os registros que ele trouxer da consulta retornando objeto
            $json['curso'][] = $registro;
        }//Fecha a conexao

        mysqli_close($conexao);
        echo json_encode($json);//mostra o array json caso a consulta tenha sido bem sucedida

        }else {//erro ao registrar
            $result["codigo"] = 0;
            $result["nome"] = 'Não registrado';
            $result["categoria"] = 'Não registrado';
            $result["professor"]= 'Não registrado'; 
            $json['curso'] = $result;//salva esse result caso os dados nao forem enviados
            echo json_encode($json);//devolve o que foi salvo
    }

}else {//dados não enviados
    $result["codigo"] = 0;
    $result["nome"] = 'Não registrado';
    $result["categoria"] = 'Não registrado';
    $result["professor"]= 'Não registrado'; 
    $json['curso'] = $result;//salva esse result caso os dados nao forem enviados
    echo json_encode($json);//devolve o que foi salvo
        }


?>
    
asked by anonymous 25.08.2018 / 18:49

1 answer

0

To access your local server through the Android Studio emulator you should use this IP 10.0.2.2. Hope it helps!

    
28.08.2018 / 16:59