Использую Apache HttpClient 4.1.3 и пытаюсь получить код состояния из HttpGet
:
HttpClient client = new DefaultHttpClient();
HttpGet response = new HttpGet("http://www.example.com");
ResponseHandler<String> handler = new BasicResponseHandler();
String body = client.execute(response, handler);
Как извлечь код состояния (202, 404 и т.д.) из body
? Или, если есть другой способ сделать это в 4.1.3, то какой?
Кроме того, я предполагаю, что идеальным/хорошим HTTP-ответом является HttpStatus.SC_ACCEPTED
, но хотелось бы получить подтверждение и на этот счет. Заранее спасибо!
EDIT:
Попробуйте с:
HttpResponse httpResp = client.execute(response);
int code = httpResp.getStatusLine().getStatusCode();
HttpStatus должен быть равен 200 ( HttpStatus.SC_OK
)
(Я'слишком быстро прочитал проблему!)
Попробуйте с:
GetMethod getMethod = new GetMethod("http://www.example.com");
int res = client.executeMethod(getMethod);
Это должно помочь!
Как насчет этого?
HttpResponse response = client.execute(getRequest);
// Status Code
int statusCode = response.getStatusLine().getStatusCode();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
// Response Body
String responseBody = responseHandler.handleResponse(response);
Я делаю это так:
HttpResponse response = client.execute(httppost);
int status = response.getStatusLine().getStatusCode();
Чтобы получить тело ответа как строку, хотя, не используя responseHandler, я получаю его сначала как InputStream:
InputStream is = response.getEntity().getContent();
и затем преобразую его в строку (как это сделать здесь)