2012-01-11 2 views
0

Я получаю доступ к веб-странице, передавая идентификатор сессии, а url и output - это ответ HTML. Я хочу использовать jSoup для анализа этого ответа и получения элементов тега. Я вижу, что примеры в Jsoup берут строку для установления соединения. Как я могу продолжить.jsoup connect параметр

псевдо-код:

Я попытался выше метод и получил это исключение

java.io.IOException: 401 error loading URL http://www.abc.com/index 
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:387) 
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364) 
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143) 
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132) 

entity.getContent() В основном есть ответ HTML, который должен быть передан в виде строки в метод подключения. Но это не сработает.

ответ

1

Apache Commons HttpClient и Jsoup не имеют общего хранилища файлов cookie. Вам в основном нужно передать те же самые файлы cookie, что и HttpClient, которые были получены обратно через Jsoup's Connection. Вы можете найти некоторые конкретные примеры здесь:

В качестве альтернативы, вы можете просто продолжать использовать HttpClient для стрельбы HTTP запросов и сохранение куки и вместо того, чтобы каналы его HttpResponse в String через Jsoup#parse().

Так что это нужно сделать:

HttpResponse httpResponse = httpclient1.execute(httpget, httpContext); 
String html = EntityUtils.toString(httpResponse.getEntity()); 
Document doc = Jsoup.parse(html, testUrl); 
// ... 

Кстати, вам не обязательно нужно создать целый новый HttpClient для последующего запроса. Просто повторно используйте httpclient, который вы уже создали. Также ваш способ получить ответ как String неуклюжий. Вторая строка в приведенном выше примере показывает, как сделать это простейшим образом.

0

Это показывает ошибку 401 HTTP, что означает

Similar to 403 Forbidden, but specifically for use when authentication is possible but has failed or not yet been provided.

Поэтому, я думаю, вам нужно зайти на сайт с помощью кода Java или идентифицировать себя, отправив файлы cookie через ваш код.

+0

Я отредактировал мой код pesudo. Вы видите, что я вошел на веб-сайт и передал файлы cookie. – JNPW

Смежные вопросы