2012-06-06 12 views
36

El uso de Apache 4.1.3 HttpClient y tratando de conseguir el código de estado de una HttpGet:HttpClient obtener el código de estado

HttpClient client = new DefaultHttpClient(); 
HttpGet response = new HttpGet("http://www.example.com"); 
ResponseHandler<String> handler = new BasicResponseHandler(); 
String body = client.execute(response, handler); 

¿Cómo se extrae el código de estado (202, 404, etc.) de la body ? O, si hay otra forma de hacerlo en 4.1.3, ¿qué es?

Además, supongo que una respuesta HTTP perfecta/buena es HttpStatus.SC_ACCEPTED pero también me gustaría obtener una confirmación al respecto. ¡Gracias por adelantado!

Respuesta

69

EDIT:

Pruebe con:

HttpResponse httpResp = client.execute(response); 
int code = httpResp.getStatusLine().getStatusCode(); 

El httpStatus debe ser 200 (HttpStatus.SC_OK)


(he leído demasiado rápido el problema!)

Probar con:

GetMethod getMethod = new GetMethod("http://www.example.com"); 
int res = client.executeMethod(getMethod); 

¡Esto debería hacer el truco!

+0

Enrichman - gracias, pero no parece que 'GetMethod' exista en 4.1.3 - alguna idea? – IAmYourFaja

4

Yo hago como:

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

para conseguir el cuerpo respose como una cadena, aunque no usando un responseHandler lo reciba por primera vez como InputStream:

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

y luego convertirlo en una Cadena (formas de hacerlo here)

5

¿Qué le parece esto?

HttpResponse response = client.execute(getRequest); 

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

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