使用'httpClient(postRequest,Handler)'方法获取Http响应状态

时间:2013-08-14 14:16:20

标签: java httpresponse

环顾四周时,我发现了这种方法:

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

2 个答案:

答案 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()