gpt4 book ai didi

Java 返回的源与我的浏览器显示的不同

转载 作者:行者123 更新时间:2023-12-01 13:11:38 24 4
gpt4 key购买 nike

我正在尝试使用以下代码(android)获取页面的内容:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10");
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();

BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
builder.append(s);
}

} catch (Exception e) {
e.printStackTrace();
}

这对于像 google 这样的网站来说效果很好,但是我想要访问的特定网站 ( http://www.swimrankings.net/index.php?internalRequest=athleteLookup&athlete_lastname=jansen&athlete_clubId=273&athlete_gender=-1 ) 返回一个 PHP 错误 ( fatal error : 访问未声明的静态属性: Config::$defaultLanguage in C:\Data\htdocs\www.swimrankings.net\classes\BSLanguage.php 第 16 行)。

使用浏览器查看该网站时,我没有收到此错误。我能做些什么来解决这个问题吗?

谢谢!

注意我已经尝试过使用内置的 java URLConnection。我还尝试将 header 设置为与 Safari 向我显示的用于访问页面的 header 完全相同,但无济于事。

最佳答案

感谢@mthmulders 的修复!问题是Accept-Language 没有定义,导致PHP 出错。将其设置为语言(“en”、“de”、“fr”)解决了问题。

固定代码:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10");
httpGet.setHeader("Accept-Language", "en");
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();

BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
builder.append(s);
}

} catch (Exception e) {
e.printStackTrace();
}

关于Java 返回的源与我的浏览器显示的不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22812295/

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