环顾四周时,我发现了这种方法:
String JSONResult = httpclient.execute(request,handler);
//Request is an HttpPost object, handler is a ResponseHandler<String>
这种方法让我的事情变得更加轻松,我现在可以从我的服务器获取JSON响应而没有所有这些inputStream
BuffredReader
....故事。
但问题是我现在无法获得HttpResponse Status
,如果我使用的话:
HttpResponse Response = httpclient.execute(request);
Response.getStatusLine();
有没有办法使用第一种方法,仍然可以获得Response status
?
答案 0 :(得分:1)
有没有办法使用第一种方法,仍能获得响应状态?
没有
这是你做的事情
HttpResponse response = httpclient.execute(request);
ResponseHandler handler = ...;
String JSONResult = handler.handleResponse(response);
StatusLine status = response.getStatusLine();
现在您可以访问HttpResponse
对象的状态,并且能够使用ResponseHandler
处理响应以获取json结果。不同方法的关键在于你并不真正关心状态,只关心处理过的响应。
答案 1 :(得分:0)
您可以获取状态并使用EntityUtils
来节省输入流和缓冲读卡器。
HttpResponse response = httpclient.execute(request);
String json = EntityUtils.toString(response.getEntity());
int status = response.getStatusLine().getStatusCode()