Android — Как отправить JSON в PHP с HttpURLConnection читать как «php: // input»?

Я пытаюсь прочитать данные из JSON, отправленные HttpURLConnection.

Деятельность.

 Gson gson = new GsonBuilder().create();
String json = gson.toJson(cDati);

if(FunzioniSalvataggio.getInstance(mContext).saveDataToSend(json,"InizioServizio_"))
new FunzioniInvio().execute(json);

AsyncTask.

 URL paginaURL = new URL("http:***");

HttpURLConnection client = (HttpURLConnection) paginaURL.openConnection();
client.setChunkedStreamingMode(0);
client.setDoOutput(true);
client.setDoInput(true);
client.setRequestProperty("X-Requested-With", "XMLHttpRequest");
client.setRequestProperty("Content-Type", "application/json");
client.setRequestMethod("POST");

client.connect();

OutputStreamWriter wr = new OutputStreamWriter(client.getOutputStream());
wr.write(json);
wr.flush();

InputStream risposta = new BufferedInputStream(client.getInputStream());
dati = mostroDati(risposta);

PHP.

$postdata = file_get_contents("php://input");
$json = json_decode($postdata, true);

Но когда страница PHP пытается прочитать ее с помощью «php: // input», она не находит данные. Как это сделать?

1

Решение

Я не пользовалась OutputStreamWriter но у меня был успех с DataOutputStream,
Попробуйте это и закодируйте вашу строку JSON

DataOutputStream wr = new DataOutputStream(urlConn.getOutputStream());
wr.writeBytes(URLEncoder.encode(json,"UTF-8"));
wr.flush();
wr.close();

У меня нет проблем с этим кодом. Но я слышал, что у некоторых людей есть проблемы с wr.close(); заявление.

Я бы посоветовал вам URL-кодировать данные, которые вы отправляете. Это может быть важно, если в отправляемые вами данные включены необычные символы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector