Получить сырой ответ от Jsoup - PullRequest
8 голосов
/ 25 марта 2012

Я использую Jsoup для публикации формы на веб-сайте, ответом является простой текст, но тип содержимого не известен Jsoup. Поэтому я использую ignoreContentType (true), чтобы Jsoup не выдавал исключение из-за неизвестного типа контента. Однако я не могу понять, как получить необработанный ответ от Jsoup, текст содержит некоторые специальные символы, которые Jsoup удаляет, также Jsoups добавляет тело и тег html - мне это не нужно, я просто хочу получить необработанный ответ. Как получить сырой ответ? Спасибо!

Ответы [ 3 ]

5 голосов
/ 25 марта 2012

Вы можете использовать для этого Response#body(). Э.Г.

String body = Jsoup.connect(url).execute().body();

Или, если вы делаете POST

String body = Jsoup.connect(url).method(Method.POST).data(data).execute().body();
1 голос
/ 24 августа 2015

У меня была та же проблема, и я решил ее за два шага

1 - сбор ответа

2 - чтение ответа в байтах и ​​преобразование в строку или синтаксический анализ чего угодно (json и т. Д.)

Response resp = jsoup.connect(url).ignoreContentType(true).Method(Method.Post).execute();
String respStr = new String(resp.bodyAsBytes(), StandardCharsets.UTF_8);
1 голос
/ 18 ноября 2014

Вы можете получить объект Response из Connection, и он содержит необработанные байтовые данные.Игнорируйте тип содержимого, иначе он не будет работать с нетекстовыми данными.Если вы используете body(), он может изменить ответ, используя кодировку по умолчанию.

Connection conn = Jsoup.connect(url).ignoreContentType(true).method(Method.GET);
Connection.Response response = conn.execute();
byte[] raw = response.bodyAsBytes();

// if you want...
Document parsed = response.parse();
...