gpt4 book ai didi

javascript - java HTTP 503 错误(不是由于服务器过载)

转载 作者:行者123 更新时间:2023-12-03 08:14:48 25 4
gpt4 key购买 nike

我正在尝试使用 java 从使用 Cloudflare Enterprise Package 保护的站点中抓取数据。我无法在网络上找到有关此 DDOS 保护系统的大量信息,但我相信正在发生的情况如下(通过检查 HTTP 响应和 javascript)

  1. 客户端向服务器发送 GET 请求。
  2. 服务器确定 GET 请求中缺少特定 Cookie,并返回 HTTP 503 响应以及一些 HTML。
  3. 客户端的浏览器会自动针对该响应运行 JavaScript,解决数学问题并发送新的 GET 请求,并将该问题的解决方案作为查询字符串附加。
  4. 服务器使用 HTTP 302 重定向响应和必要的 Cookie 进行响应。
  5. 浏览器发送带有正确 Cookie 的 GET 请求,服务器给出 HTTP 200 响应,一切正常。

我的问题与获取 java 中的初始响应流有关。我创建连接,添加用户代理,然后尝试打开流。正如预期的那样,我收到了 503 响应。然而,java 认为这是一个异常(exception),并且不会让我访问我认为应该附加到此响应中的 HTML。有谁知道如何获取 HTML?或者也许不可能将 HTML 附加到 503,而我只是无法正确理解发生了什么?

谢谢!

最佳答案

如果您有除 OK 之外的其他响应,则需要使用 .getErrorStream() 读取响应

你可以这样做:

HttpURLConnection c = ....;
InputStream is;
if ((c.getResponseCode()/100)==2) {
is = c.getInputStream();
} else {
is = c.getErrorStream(); // instead of normal Input Stream
}

// read your HTML from is

关于javascript - java HTTP 503 错误(不是由于服务器过载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33992856/

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