gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:30:35 24 4
gpt4 key购买 nike

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

有趣的是,每 5 或 6 次点击 URL 就会出现 403。

我正在使用 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表示请求已被理解,但服务器拒绝处理它。查看您发送的 header 。当失败时,运行 TRACE http 方法来检索您正在执行的确切请求。

当您建立 http 连接时,您可以随请求一起发送您想要执行的方法。

其中一种方法是TRACE

通过执行TRACE您可以在正文响应中看到您刚刚执行的请求的方法。这样您就可以查看它是否仍然有效。

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

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

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