当前位置: 首页 > 知识库问答 >
问题:

java.io.IOException:服务器返回HTTP响应代码:403为URL[重复]

司空叶五
2023-03-14

我想打开一个链接从网址:"http://www.kohls.com/search.jsp?search=jacket

Java语言io。IOException:服务器返回URL的HTTP响应代码:403。但使用浏览器打开url也没关系。以下是我代码的一部分:

URL url = new URL("http://www.kohls.com/search.jsp?search=jacket&submit-search=web-regular");

InputStream is = url.openConnection().getInputStream();

错误详细信息

线程“main”java中出现异常。io。IOException:服务器返回了URL的HTTP响应代码403:http://www.kohls.com/search.jsp?N=0

共有1个答案

范侯林
2023-03-14

您试图访问的特定Web服务器是检查用户代理HTTP头并拒绝访问任何看起来不像正常浏览器的内容,以防止机器人程序(这可能是您正在编写的)。

您只需要在Java中设置标头作为请求的一部分,它就可以工作。

如何设置标头将取决于您如何建立连接,但如果您使用的是简单的URLConnection,那么这将有效:

URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0");

通常,“真实”User-Agent包含大量额外信息,但该网络服务器似乎只查找基本的浏览器类型。

您可以使用带和不带用户代理选项的wget来证明这一点:

$ wget "http://www.kohls.com/search.jsp?search=jacket&submit-search=web-regular"
--2015-05-07 16:08:46--  http://www.kohls.com/search.jsp?search=jacket&submit-search=web-regular
2015-05-07 16:08:46 ERROR 403: Forbidden.

$ wget -U "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0" "http://www.kohls.com/search.jsp?search=jacket&submit-search=web-regular"
--2015-05-07 16:08:49--  http://www.kohls.com/search.jsp?search=jacket&submit-search=web-regular
awaiting response... 200 OK
...
 类似资料:
  • 问题内容: 我想从URL打开一个链接:“ http://www.kohls.com/search.jsp?search=jacket&submit- search=web-regular ”,有时我得到: java.io.IOException:服务器返回URL的HTTP响应代码:403。但是使用浏览器打开网址是可以的。以下是我的代码的一部分: 错误详情 线程“主”中的异常java.io.IOEx

  • 这个错误的原因是什么?当我直接从浏览器调用URL时,它的工作非常完美。

  • 问题内容: 我的代码中包含基于HTML的查询,并且从服务器收到505响应后,似乎会引起一种特定的查询。我与其他似乎也有类似问题的人一起查看了505响应。显然505代表HTTP版本不匹配,但是当我将相同的查询URL复制到任何浏览器(尝试过firefox,seamonkey和Opera)时,似乎没有问题。我读过的一篇文章建议浏览器可能会自动处理版本不匹配的问题。 我试图通过使用Opera附带的漂亮的开

  • java.io.ioException:服务器返回HTTP响应代码:406 for url:https://aa09616289afe6a25ea1f7f6fbf12073:shppa_f5fd47a653d49d886436578c54187@mfaisal1521.myshopify.com/admin/api/2020-04/products.json at sun.net.www.prot

  • 使用此代码,目前我正在读取xml文件,它的工作良好,我的个人Ubuntu PC 但是当我在Ubuntu服务器上运行相同的代码时,会显示错误 有人能帮我找出问题吗?服务器的问题在哪里?

  • 问题内容: 我正在用Java面对这个问题。我想从URL获取一些HTML信息。该代码已经运行了很长时间,但是突然,它停止了工作。 当我使用浏览器访问此URL时,它毫无问题地打开。 代码: 例外: 怎么了?主人阻止了我吗? 问题答案: HTTP状态代码500通常表示Web服务器代码已崩溃。您需要预先确定状态代码,如果有错误,请阅读。它可能即包含有关问题的信息。 如果主机阻止了您,您宁愿获得4nn状态码