好的,我已經成功地連接到遠程服務器,並接收響應HTTP/1.1 200 OK
和響應被打包到HttpResponse對象。現在我如何從響應中獲取響應中的數據,特別是從服務器發送的JSON?提取消息主體出來的HttpResponse
13
A
回答
24
是這樣的:重複此:How do I parse JSON from a Java HTTPResponse?
HttpResponse response; // some response object
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
JSONTokener tokener = new JSONTokener(json);
JSONArray finalResult = new JSONArray(tokener);
4
那麼,你可以通過調用getEntity()
得到HttpResponse
的主體,它返回HttpEntity
類型的對象。那麼你將要消耗的是從HttpEntity
的getContent()
方法返回的InputStream
。我會做這樣的:
public static String entityToString(HttpEntity entity) {
InputStream is = entity.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
StringBuilder str = new StringBuilder();
String line = null;
try {
while ((line = bufferedReader.readLine()) != null) {
str.append(line + "\n");
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
is.close();
} catch (IOException e) {
//tough luck...
}
}
return str.toString();
}
0
調用httpclient.execute()
ResponseHandler <String> resonseHandler = new BasicResponseHandler();
String response = httpclient.execute(httpget, resonseHandler);
1
你也可以使用時,請使用BasicResponseHandler EntityUtils
response = cl.execute(p); //cl is http client and p is the post request
if(response.getStatusLine().getStatusCode()==200)
{
try
{
String resp_body = EntityUtils.toString(response.getEntity());
Log.v("resp_body", resp_body.toString());
JSONObject jsobj = new JSONObject(resp_body);
}
catch(Exception e)
{
Log.e("sometag",e.getMessage());
}
}
PS:您可能不得不這樣做在一個單獨的線程,除了主線程,就像在主線程異常的的AsyncTask或網絡運行可能出現的doInBackground()。
相關問題
- 1. 方法來提取的GMail消息
- 2. Net :: HTTPResponse主體作爲IO
- 3. XSD工具來提取錯誤消息
- 4. MQRFH2.usr主消息體
- 5. MIME消息出來的MailItem
- 6. 提取ping消息的值
- 7. 獲取的Android的HttpResponse消息而不響應代碼
- 8. 如何打印出HttpResponse返回的消息?
- 9. 如何從WebAPI中的HttpResponse對象獲取錯誤消息?
- 10. 創建和發送一個HttpResponse消息
- 11. 提醒框取消取消,但又回來了出沒?
- 12. 提示消息不彈出
- 13. Iphone彈出提醒消息
- 14. Windows窗體 - 顯示來自消息框的消息的問題
- 15. 在httpResponse主體中設置字符串
- 16. 在Spring Websocket消息的計劃方法中獲取主體
- 17. 提取PDO錯誤消息
- 18. 澤西REST響應消息主體
- 19. ,同時使用ajax獲取錯誤消息來提取數據
- 20. GIT中從主合併提交消息
- 21. 無法在偵聽器偵聽到彈簧jms中的消息後將主體中的消息取消。
- 22. dojo validationTextBox無效的消息或提示消息不出現
- 23. 在反序列化之前獲取WCF消息主體
- 24. 無法讀取HTTP消息:org.springframework.http.converter.HttpMessageNotReadableException:需要請求主體缺少
- 25. 「提取類型超出範圍」錯誤消息拋出
- 26. 如何從android中的GCM消息體獲取消息?
- 27. MVC表單提交的彈出消息
- 28. EmailManager消息體越來越被截斷
- 29. 使用消息驅動bean從主題獲取消息apache apollo
- 30. 如何查看源/主在主機之前的提交消息?