HTTPResponse
Object を に変換するコードがいくつかありますが、JSONObject
ほとんどの場合は問題なく動作します。
public static JSONObject httpResponseToJson(HttpResponse response) {
if (response != null) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),
"UTF-8"));
String json = reader.readLine();
if (json != null) {
JSONObject jsonObject = new JSONObject(json);
printStatus(jsonObject);
return jsonObject;
}
} catch (JSONException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
ただし、 Android をスローすることがありますNetworkOnMainThread exception
。応答はすでに終了しており、その呼び出しにこれ以上ネットワーク IO が関与してはならないため、理由がわかりません。テスト上の理由から、許可するNetworkOnMainThread
と、このメソッドは常に正常に機能します。
HTTPResponse
すべてが an で取得され、AsyncTask
これは正常に機能していることに注意してください。
私はどんな提案にも非常に興味があります。