gpt4 book ai didi

java - 无法通过 URL 连接从网站加载内容

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

我正在尝试加载网站 http://www.povarenok.ru/来自 url 连接,但内容为空。我尝试过其他网站 - 一切正常。请帮忙,这个网站出了什么问题?

    URL url;

try {

url = new URL("http://www.povarenok.ru/");
URLConnection conn = url.openConnection();

BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));

String inputLine;

String fileName = "c:\\test.html";
File file = new File(fileName);

if (!file.exists()) {
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);

//inputLine is empty!!! All works with other sites
while ((inputLine = br.readLine()) != null) {
bw.write(inputLine);
}

bw.close();
br.close();

System.out.println("Done");

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

更改为:

 url = new URL("http://www.povarenok.ru");
^ - no slash here

看起来该网站已将 / 配置用于其他目的

[编辑]

再次检查,这个斜杠确实不是这样的,从我看来,它在更改 urser-agent 后开始工作(将其放在 BufferedReader 创建之前):

((HttpURLConnection)conn).setRequestProperty("User-Agent", "SO");
<小时/>

关于如何在 Windows with Fiddler 上调试此类问题的提示:

您应该首先安装fiddler2 - 它将允许您查看您的请求。在您的 Java 应用程序中,在应用程序启动时添加以下行:

    System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8888");
System.setProperty("https.proxyPort", "8888");

现在,假设您有一个可以在 Web 浏览器中加载的网站,但不会在您的 Java 应用程序中加载。您必须比较请求 header 并找到差异。因此,您在网络浏览器中加载页面,然后在应用程序中加载页面,并使用 fiddler 比较结果。

关于java - 无法通过 URL 连接从网站加载内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21674139/

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