>
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);
}
});
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);
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
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
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 :)