В httpclient какой самый элегантный/правильный способ превратить httpentity в строку?

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

  •  19-09-2019
  •  | 
  •  

Вопрос

Я получаю веб -страницу, используя Apache httpcomponents java библиотека. Анкет После подключения результата, который я получу HttpEntity который имеет метод getContent() который возвращает InputStream а также имеет метод writeTo() который пишет в OutputStream.

Я хочу превратить результат в строку для извлечения информации. Какой самый элегантный (и безопасный) способ сделать это?

Некоторые возможные решения:

  • Написать ByteArrayOutputStream а затем преобразовать эти байты в строку со строковым конструктором
  • Используйте inputStreamReader, чтобы прочитать прямо из потока, и положите в StringBuilder

Оба они чувствуют себя немного уродливыми. Вы бы порекомендовали выбрать одно из них или что -то еще?

Это было полезно?

Решение

Как насчет (псевдо):

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

В этом случае вам придется обработать исключения самостоятельно.

Другие советы

System.out.println (entityutils.tostring (httpresponse.getentity ()));

Это может быть некрасиво, но я думаю, что это единственный способ сделать это. Вы можете использовать Ioutils.tostring () из Commons-IO, хотя без необходимости писать свой собственный код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top