【问题标题】:why is connection being reset? [closed]为什么要重置连接? [关闭]
【发布时间】:2018-08-04 21:04:53
【问题描述】:

我正在尝试使用 JSoup 连接到一个 url。它适用于一个网址,但对于另一个我得到 ​​p>

java.net.SocketException: Connection reset

这是有效的代码:

Document doc = Jsoup.connect("https://finance.yahoo.com/quote/IBM/key-statistics?p=IBM").get();

这是产生错误的代码:

Document doc = Jsoup.connect("https://www.nasdaq.com/dividend-stocks/dividend-calendar.aspx?date=2018-Aug-17").get();

如果您将这些网址剪切并粘贴到浏览器中,它们就可以正常工作。有什么建议吗?

【问题讨论】:

  • 这不是服务器端的问题吗?
  • 可能。我对此无能为力吗?为什么它可以在浏览器上工作,而不是在代码上?
  • 有些网站不想支持非浏览器访问者,所以他们检查像用户代理这样的标题。我没有测试它,但我可能会从JSoup UserAgent, how to set it right? 之类的东西开始(但我可能会使用我的浏览器标题,它可以在whatsmyua.info 之类的地方找到)
  • 我投票结束这个问题,因为这是一个服务器端错误,没有源代码或至少来自服务器的堆栈跟踪,这是无法回答的。
  • Pshemo-所以现在我的代码看起来像这样,但得到了同样的错误: Document doc = Jsoup.connect(address).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0 ) Gecko/20100101 Firefox/5.0").get();

标签: java jsoup


【解决方案1】:

感谢下面 cmets 中的 Pshemo,这是答案:

    String address = "https://www.nasdaq.com/dividend-stocks/dividend-calendar.aspx?date=" +date;
    //Note: "userAgent required for this site to prevent java.net.SocketException: Connection reset" error
    String usrAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
    Document doc = Jsoup.connect(address).userAgent(usrAgent).get();

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 2013-04-12
    • 1970-01-01
    • 2015-07-28
    • 2015-12-16
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多