В httpclient, что самый изящный/корректный путь состоит в том, чтобы повернуть HttpEntity к Строке?

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

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

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

  • Запишите в a ByteArrayOutputStream и затем преобразуйте те байты в Строку с конструктором String
  • используйте InputStreamReader, чтобы читать прямо из потока и поместить в StringBuilder

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

5
задан skaffman 18 May 2012 в 18:50
поделиться

2 ответа

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

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

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

4
ответ дан 13 December 2019 в 22:08
поделиться

Это может быть уродливым, но я Думаю, это единственный способ сделать это. Вы можете использовать IOUTILS.TOSTRING () От Commons-io, хотя без необходимости написать свой собственный код.

0
ответ дан 13 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: