Em HttpClient Qual é a maneira mais elegante/correta de transformar a httpentity em uma string?
-
19-09-2019 - |
Pergunta
Estou buscando uma página da web usando o Apache HttpComponents Java Biblioteca. Depois de conectar o resultado que recebo, é um HttpEntity
que tem um método getContent()
que retorna um InputStream
e também tem um método writeTo()
que grava em um outputStream.
Quero transformar o resultado em uma string para extrair informações. Qual é a maneira mais elegante (e segura) de fazer isso?
Algumas soluções possíveis:
- Escreva para um
ByteArrayOutputStream
e depois converta esses bytes em uma string com um construtor de string - Use o InputStreamReader para ler diretamente do fluxo e colocar em um StringBuilder
Ambos parecem um pouco feios. Você recomendaria escolher um desses ou algo mais?
Solução
Que tal (pseudo):
BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();
String str = httpClient.execute(request, handler);
Você teria que lidar com exceções por conta própria neste caso.
Outras dicas
System.out.println (entityutils.toString (httproPense.getEntity ()));
Pode ser feio, mas acho que essa é a única maneira de fazê -lo. Você pode usar Ioutils.toString () do Commons-io, embora sem ter que escrever seu próprio código.