>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Não recebo o Json enviado no lado Servidor (PHP)


Boa tarde, estou tentando criar uma aplicação que envie dados Json para a página php. Porém não estou recebendo os dados Json no lado
servidor (PHP).


JsonObject json = new JsonObject();
json.addProperty("0001","10");
json.addProperty("0002","20");

Ion.with(this)
.load("POST","http://192.168.1.191/estoque/cadastra_estoque.php")
.setLogging("JSON",Log.DEBUG)
.setJsonObjectBody(json)
.asString()
.setCallback(new FutureCallback() {
@Override
public void onCompleted(Exception e, String result) {

if (e != null){
Toast.makeText(PrincipalActivity.this,e.getMessage(),Toast.LENGTH_LONG).show();
}

Log.d("JSON",result);
}
});


Código PHP

include_once('./conexao/conexao.php');

if (count($_POST) > 0 ){
$dados['msg'] = "Dados Cadastrados ".count($_POST);
}else{
$dados['msg'] = "Dados nao Cadastrados";
}


echo json_encode($_POST);


Retorno da IDE Android Studio
05-24 19:29:48.393 27110-27110/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (0 ms) http://192.168.1.191/estoque/cadastra_estoque.php: preparing request
05-24 19:29:48.393 27110-27110/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (0 ms) http://192.168.1.191/estoque/cadastra_estoque.php: preparing request
05-24 19:29:48.394 27110-18693/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (0 ms) http://192.168.1.191/estoque/cadastra_estoque.php: Executing request.
05-24 19:29:48.393 27110-27110/tiautomacao.com.br.contagemdeestoqueleitor I/JSON: (0 ms) http://192.168.1.191/estoque/cadastra_estoque.php: Using loader: com.koushikdutta.ion.loader.HttpLoader@37fc1cbd
05-24 19:29:48.396 27110-18693/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (1 ms) http://192.168.1.191/estoque/cadastra_estoque.php: Reusing keep-alive socket
05-24 19:29:48.407 27110-18693/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (13 ms) http://192.168.1.191/estoque/cadastra_estoque.php: Response is not cacheable
05-24 19:29:48.407 27110-18693/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (13 ms) http://192.168.1.191/estoque/cadastra_estoque.php: Connection successful
05-24 19:29:48.408 27110-18693/tiautomacao.com.br.contagemdeestoqueleitor D/JSON: (14 ms) http://192.168.1.191/estoque/cadastra_estoque.php: Recycling keep-alive socket
05-24 19:29:48.409 27110-27110/tiautomacao.com.br.contagemdeestoqueleitor D/JSON_RESPOSTA: []

Grato pela atenção.



9 Respostas


O que ele gera quando você acessa manualmente o PHP (faça um teste, usando $_GET)




Ele gera os dados do JSON normalmente, já havia feito esse teste. Se eu passar os dados como Map>, funciona corretamente somente passando JSON como parâmetro não funciona.




Já acharam a solução desse problemas ? também estou quebrando a cabeça nisso.




Ainda não. Somente funciona se enviar como parâmetro uma Map>. Fazendo assim eu consegui






Descupa, mas não entendi, como eu deveria implementar esse código ? Poderia envia um exemplo ? sou novo nessa treta toda kkkk




Eu fiz da seguinte forma:



//O atributio hashMap foi de clarado assim
Map> hashMap;

Ion.with(this.contexto)
.load("POST","http://" server ":" String.valueOf(porta) "/estoque/cadastra_estoque.php")
.setLogging("JSON",Log.DEBUG)
.setBodyParameter("data",format.format(new Date()))
.setBodyParameters(this.hashMap)
.asJsonObject()
.setCallback(new FutureCallback() {
@Override
public void onCompleted(Exception e, JsonObject result) {

if (e != null){
Toast.makeText(contexto,e.getMessage(),Toast.LENGTH_LONG).show();
}else{
String retorno = result.get("error").getAsString();

if (retorno.equals("")){

ConexaoDb conexaoDb = new ConexaoDb(contexto);
EstoqueDAO estoqueDAO = new EstoqueDAO(contexto,conexaoDb);
estoqueDAO.updateEnviado("S");
estoqueDAO.updateSelecionado("N");

((RelatorioActivity) contexto).filtrarDados();

Util.msgOk(contexto,"Dados cadastrados com sucesso","Atenção",null);
}else{
Util.msgOk(contexto,result.toString(),"Atenção",null);
}

}

}
});




Pelo jeito a declaração não fica na formatação correta do java.




Muito obrigado cara :)