gpt4 book ai didi

Java HTTP GET 请求给出 403 Forbidden,但在浏览器中有效

转载 作者:可可西里 更新时间:2023-11-01 16:30:26 34 4
gpt4 key购买 nike

我有一些代码,用于通过 HTTP 向服务器发送 GET 请求,并在那里获取数据。我还没有对处理响应的部分进行编码,因为我首先想测试 GET 请求是否有效。它没有:

private static String fetch() throws UnsupportedEncodingException, MalformedURLException, IOException {
// Set the parameters
String url = "http://www.futhead.com";
String charset = "UTF-8";

//Fire the request
try {
URLConnection connection = new URL(url).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
// ^^^ I tried this, and it doesn't help!
InputStream response = connection.getInputStream();

HttpURLConnection httpConnection = (HttpURLConnection) new URL(url).openConnection();
httpConnection.setRequestMethod("GET");
System.out.println("Status: " + httpConnection.getResponseCode());
} catch (UnknownHostException e) {
// stuff
}
return null;
// ^^^ I haven't coded the fetching itself yet
}

考虑到该代码,fetch() 打印 Status: 403。为什么会这样?我的猜测是这个特定的服务器不允许非浏览器客户端访问它(因为代码适用于 http://www.google.com),但是有解决方法吗?

已经有一些答案,但其中一些与我无关(他们谈论 HTTPS 的问题)或难以理解。我已经尝试了那些我能理解的,但无济于事。

最佳答案

您可能启用了浏览器完整性检查 https://support.cloudflare.com/hc/en-us/articles/200170086-What-does-the-Browser-Integrity-Check-do-

我禁用了浏览器完整性检查,现在它工作正常。如果可能,另一种解决方案是设置 User-Agent。

我遇到了 Scala 的问题,它最终使用了 java.net.URL

关于Java HTTP GET 请求给出 403 Forbidden,但在浏览器中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445493/

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