java - Jsoup 无法连接(有时)

标签 java android jsoup

我在项目中使用jsoup,但发现有时以下指令无法获取文档:

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

奇怪的是,使用浏览器我可以在不到2秒的时间内打开url,而jsoup有这个问题。另一个奇怪的事情是,大多数时候,jsoup 运行良好。

出了什么问题?

最佳答案

某些网站会查看连接浏览器的用户代理字符串来决定提供哪些内容。可能是 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();

另一种可能性是网络服务器需要正确设置一些cookie。您需要查看浏览器和网站之间的确切流量才能了解更多信息。 (使用浏览器开发模式中的“网络”选项卡)

如果没有给您带来问题的 URL,我担心这就是我能提供的所有建议。

关于java - Jsoup 无法连接(有时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33271588/

相关文章:

java - 使用 docker stack 部署时 Hazelcast 节点未发现其他节点

java - 如何使用 jsoup 检索标签数据

java - 删除文本节点并检查 html 中的替代文本节点 : Jsoup

java - 如何使用 Eclipse 的自定义 SurroundWith 功能

java - 使用 Jsoup 搜索雅虎问答

java - 在重新设计的 Java SE 8 文档中,具体方法和实例方法有什么区别?

java - 无法使用eclipse创建android应用程序

java - 有没有办法在 gradle 中进行源到源的 java 重构?

java - packagename.activity 无法分配给 AndroidManifest.xml 中的 'android.app.Activity'

java - ImageView 不在不同设备之间缩放