2015-10-22 2 views
0

Я использую jsoup в проекте, но я считаю, что иногда, следующая команда не может получить документ:Jsoup не может подключиться (иногда)

Document document = Jsoup.connect(url).timeout(30000).get(); 

Самое странное в том, что с браузером Я могу открыть URL-адрес менее чем за 2 секунды, в то время как у jsoup есть эта проблема. Еще одна странная вещь: в большинстве случаев jsoup работает хорошо.

Что случилось?

+0

Всегда ли тот же URL-адрес, который не удается? – luksch

+0

@luksch, да, но я нахожу, что проблема обычно на смартфоне: в эмуляторе genymotion все работает нормально! – helloimyourmind

ответ

1

Некоторые веб-сайты рассматривают строку пользовательского агента соединительного браузера, чтобы решить, какой контент должен быть доставлен. Возможно, пользовательский агент Jsoup отправляет сообщение недостаточно ясно. Так что мои предложения будут играть с агентом пользователя, как это:

Document document = Jsoup.connect(url) 
    .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") 
    .timeout(30000) 
    .get(); 

Другая возможность, что веб-сервер нуждается в некоторых куки быть установлены правильно. Вам нужно посмотреть точный трафик между браузером и веб-сайтом, чтобы узнать больше. (Используйте вкладку «Сеть» в режиме разработки браузера)

Без URL-адреса, который дает вам проблемы, я боюсь, что это все советы, которые я могу предложить.

+0

Спасибо, я уже пытаюсь с userAgent и, кажется, улучшает производительность. – helloimyourmind

+0

Ваша проблема решена? если да, пожалуйста, подумайте о принятии ответа и/или его голосовании, если это поможет. Если ваш вопрос не решен, уточните его и укажите точные ошибки и URL. – luksch

+0

Да, кроме того, я также использовал .refer ("http://www.google.com"); – helloimyourmind

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