Em HttpClient Qual é a maneira mais elegante/correta de transformar a httpentity em uma string?

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

  •  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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top