Я пытаюсь прочитать данные из 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», она не находит данные. Как это сделать?
Я не пользовалась OutputStreamWriter
но у меня был успех с DataOutputStream
,
Попробуйте это и закодируйте вашу строку JSON
DataOutputStream wr = new DataOutputStream(urlConn.getOutputStream());
wr.writeBytes(URLEncoder.encode(json,"UTF-8"));
wr.flush();
wr.close();
У меня нет проблем с этим кодом. Но я слышал, что у некоторых людей есть проблемы с wr.close();
заявление.
Я бы посоветовал вам URL-кодировать данные, которые вы отправляете. Это может быть важно, если в отправляемые вами данные включены необычные символы.
Других решений пока нет …