2012-02-13 26 views
9

¿Hay alguna implementación simple del analizador de respuestas http? La idea es poner la respuesta completa como una cadena grande y ser capaz de recuperar cosas como el código de estado, el cuerpo, etc. a través de la interfaz.¿Hay algún analizador de respuesta HTTP simple para Java?

Las solicitudes/respuestas no se envían directamente a través de TCP/IP, por lo que no es necesario nada más que la ejecución del análisis del núcleo rfc 2616.

Respuesta

11

Si usa por ejemplo Apache HttpClient, obtendrá un objeto de respuesta java que puede usar para extraer los encabezados o el cuerpo del mensaje. Consideremos el siguiente ejemplo de

HttpClient client = new DefaultHttpClient(); 
HttpResponse response = client.execute(new HttpGet("http://www.foo.com/")); 
Header[] headers = response.getAllHeaders(); 
InputStream responseBody = response.getEntity().getContent(); 

Si sólo desea analizar una Reponse, tal vez el HttpMessageParser será útil:

Resumen analizador de mensajes intención de construir mensajes HTTP desde una fuente de datos arbitraria.

+1

En mi humilde opinión, el OP quiere analizar la respuesta HTTP sin formato que tiene en una Cadena (tal vez de algún vuelco). –

+0

Thomasz tiene razón. Estoy trabajando con respuestas crudas ... no hay URI y HttpGet no funcionará. – mibollma

+0

@mibollma, consulte la segunda sugerencia usando 'HttpMessageParser' –

0

Recomiendo http-request built on apache http api.

HttpRequest<String> httpRequest = HttpRequestBuilder.createGet(someUri, String.class) 
    .responseDeserializer(ResponseDeserializer.ignorableDeserializer()) 
    .build(); 

public void send(){ 
    ResponseHandler<String> responseHandler = httpRequest.execute(); 
    String responseBody = responseHandler.get(); 
    int statusCode = responseHandler.getStatusCode(); 
} 

Recomiendo leer la documentación antes de su uso.

Cuestiones relacionadas