gpt4 book ai didi

java - 从 URL 获取内容时出现 403 错误

转载 作者:行者123 更新时间:2023-12-04 06:17:56 25 4
gpt4 key购买 nike

我正在尝试自动化一个过程。为此,我需要通过在 1 次运行中多次点击 URL 来获取 XML,然后对其进行解析。对于程序的 1 次运行,URL 可能会被命中 4 到 25 次。在返回 403 错误响应之前,这一切似乎都很好。

有趣的是,403 总是在每 5 次或第 6 次点击 URL 时出现。

我正在使用 JDOM 来解析 XML 响应。

我已经尝试过以下代码:

Document doc = builder.build(new InputSource(url.openStream()));


HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
Document doc = builder.build(conn.getInputStream());

对于第二个,我得到了异常:
org.jdom.input.JDOMParseException: Error on line 1: White spaces are required between publicId and systemId.

有人可以帮我摆脱 403。请注意,如果需要进行更改,我无法控制源代码 here

另外,我不确定是否 this link很有帮助。

谢谢你。

[更新 1]:
这在某种程度上是有效的,而不必 sleep :
try{
doc = builder.build(conn.getInputStream());
}catch(IOException ioEx){
doc = builder.build(new InputSource(url.openStream()));
}

最佳答案

403意味着请求被理解,但服务器拒绝处理它。查看您发送的标题。当失败时运行 TRACE http 方法来检索您正在执行的确切请愿书。

当您建立 http您随请求发送的连接以及您要执行的方法。

其中一种方法是 TRACE .

通过执行 TRACE您可以在正文中看到您刚刚执行的请求的方法。所以你可以看看它是否仍然有效。

如果他们有任何机制,也许您已经超过了请愿的最大数量。

关于java - 从 URL 获取内容时出现 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com