私はthis Stack Overflow answerのコードを採用して、AndroidアプリからPython/DjangoサーバにJSONを正常にPOSTしています。ここでPOSTコードの私(非常に近い)の適応は次のとおりです。HttpResponseにアクセスする方法HttpURLConnection InputStream by Androidで返されますか?
// In my activity's onCreate method
try {
JSONObject obj = new JSONObject(strJSON);
new postJSON().execute("https://www.placeholder.com/generate_json", obj.toString());
} catch (Throwable t) {
Log.e("JSON Error", "Could not parse malformed JSON: " + strJSON);
}
// Outside onCreate
private class postJSON extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String data = "";
HttpURLConnection httpURLConnection = null;
try {
httpURLConnection = (HttpURLConnection) new URL(params[0]).openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
wr.writeBytes("PostData=" + params[1]);
wr.flush();
wr.close();
InputStream in = httpURLConnection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(in);
int inputStreamData = inputStreamReader.read();
while (inputStreamData != -1) {
char current = (char) inputStreamData;
inputStreamData = inputStreamReader.read();
data += current;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (httpURLConnection != null) {
httpURLConnection.disconnect();
}
}
return data;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Log.e("TAG", result);
}
}
私は今、私はdata
に含まれていると思います(私はこれについてはよく分からない)、サーバから返されたのHttpResponseに、アクセスしたいです。 data
にHttpResponseが含まれている場合は、Toastで印刷したいと思います。
data
には既にサーバーのHttpResponseが含まれていますか、それともInputStream
から取得するために追加の手順を実行する必要がありますか?既に存在する場合は、コードをHttpResponse(つまりdata
)をトーストに印刷するためのコードはどこに置く必要がありますか?
はい '文字列data'は応答が含まれています。そして、それはdoInBackgroundによって返されます。したがって、onPostExecuteのパラメータとして使用できます。それを焼く。すでにログオンしています。ログには、実際に期待されているJSONかどうかが分かります。あなたはすでにそれを記録しているので、私はあなたの問題をもう理解しません。 – greenapps
アドバイスをいただきありがとうございます! 'onPostExecute'で' result'を使用して、応答を表示して操作する必要がありますか? – ThanksForTheHelpAgain
確かに。どのようにそれを行う必要がありますそう。 – greenapps