连接到URL并使用Java获取401

时间:2012-05-22 20:11:59

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

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

哦,顺便说一下......在尝试连接到没有身份验证的页面时,我收到401错误。在我看来,这非常奇怪。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

如果您使用HttpURLConnection,也许有帮助......

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