HttpClient получить код состояния

Использование 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);

How do I extract the status code (202, 404, etc.) from the body? Или, если есть другой способ сделать это в 4.1.3, что это?

Кроме того, я предполагаю, что идеальный / хороший HTTP-ответHttpStatus.SC_ACCEPTED но хотел бы получить подтверждение и по этому поводу. Заранее спасибо!

Ответы на вопрос(3)

Я делаю это так:

HttpResponse response = client.execute(httppost);
int status = response.getStatusLine().getStatusCode();

Чтобы получить тело восстановления в виде строки, хотя, не используя responseHandler, я получаю его сначала как InputStream:

InputStream is = response.getEntity().getContent();

а затем преобразовать его в строку (способы, как это сделатьВот)

Решение Вопроса

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);

Это должно сработать!

 IAmYourFaja06 июн. 2012 г., 12:27
Энричман - спасибо, но это не похожеGetMethod существует в 4.1.3 - есть идеи?

Как насчет этого?

HttpResponse response = client.execute(getRequest);

// Status Code
int statusCode = response.getStatusLine().getStatusCode();

ResponseHandler<String> responseHandler = new BasicResponseHandler();
// Response Body
String responseBody = responseHandler.handleResponse(response);

Ваш ответ на вопрос