En httpclient lo que es la forma más elegante / correcta para activar HttpEntity a una cadena?

StackOverflow https://stackoverflow.com/questions/2043580

  •  19-09-2019
  •  | 
  •  

Pregunta

Estoy ir a buscar una página web utilizando el Apache httpcomponents Biblioteca de Java . Después de conectar el resultado que consigo es un HttpEntity que tiene un método getContent() que devuelve un InputStream y también tiene un writeTo() método que escribe en un OutputStream.

Quiero convertir el resultado en una cadena para extraer información. ¿Cuál es el modo más elegante (y seguro) para hacer esto?

Algunas posibles soluciones:

  • Escribir a un ByteArrayOutputStream y luego convertir esos bytes de una cadena con un constructor de String
  • Uso InputStreamReader leer directamente de la corriente, y se pone en un StringBuilder

Ambos se sienten un poco feo. ¿Le recomendaría elegir uno de estos o algo más?

¿Fue útil?

Solución

¿Qué hay de (pseudo):

BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();    
String str = httpClient.execute(request, handler);

Usted tendría que manejar excepciones por su cuenta en este caso.

Otros consejos

System.out.println (EntityUtils.toString (httpResponse.getEntity ()));

Puede ser feo, pero creo que esa es la única manera de hacerlo. Puede utilizar IOUtils.toString () de los Comunes-IO, aunque sin tener que escribir su propio código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top