【问题标题】:Connecting to URL and getting 401 with Java使用 Java 连接到 URL 并获取 401
【发布时间】:2012-05-22 20:11:58
【问题描述】:

我可以在this site 中轻松获得身份验证 通过浏览器。但是没有可能的方式使用 Java 连接到它。我总是收到 401 错误。我尝试通过 Jsoup 和 HTMLUnit 进行连接,但仍然没有。任何人至少对为什么会发生这种情况有一些解释?

哦,顺便说一句...在尝试连接到页面而不进行身份验证时,我收到了 401 错误。在我看来这很奇怪。

  1. 基本的 URLConnection = new URLConnection(URL); 组合(本机 Java API)不起作用。
  2. Document = Response.parse(); 的 Jsoup 不起作用
  3. 使用WebClient 的HTMLUnit 也不起作用
  4. 上述任何尝试模拟浏览器的方法都无法正常工作

【问题讨论】:

    标签: java web-scraping jsoup http-status-code-401


    【解决方案1】:

    401 错误是身份验证错误。这很可能因为您在连接时指定(或未能指定)的代理被视为无效。 (可能不止这些,具体取决于该网站的设置方式。)

    您可以在 JSoup 中指定用户代理,请参阅this answer 以了解关于 SO 的问题。

    【讨论】:

    • 没有。用 3 种不同的浏览器试了,还是不行
    【解决方案2】:

    如果你使用HttpURLConnection,也许它会有所帮助...

    java.net.Authenticator.setDefault( new Authenticator() {
      protected java.net.PasswordAuthentication getPasswordAuthentication() {
        return new java.net.PasswordAuthentication ("user", "pass".toCharArray());
      }
    });
    

    【讨论】:

    • 问题本身不是身份验证。在打开页面时,我收到 401 错误。我尝试从主页获取 cookie,然后重定向到登录页面,但仍然收到 401 错误。这就是我认为很奇怪的部分..
    • 好的。我用过,还是没用。还是谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 2016-06-09
    • 2018-03-24
    • 2014-12-26
    • 2013-03-12
    相关资源
    最近更新 更多