URL请求中没有返回数据 - Java

时间:2018-06-12 13:17:25

标签: java html url

当我运行这个Java程序时......

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

        // open the stream and put it into BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String inputLine;

        while ((inputLine = br.readLine()) != null) {
            System.out.println(inputLine);
        }
        br.close();

我没有返回数据。使用地址www.stackexchange.com返回一些HTML,但不是我在Web浏览器中看到的完整HTML。有人能解释一下这里发生了什么吗?

由于

1 个答案:

答案 0 :(得分:0)

您在浏览器中看到的是多次调用服务器的结果。在第一次调用中,加载了顶级html。浏览器解析相同的内容并多次调用服务器以获取其他资源,如js,css,images等。

应用js,css等。这反过来可能导致从服务器加载更多数据并更新html。因此,您在浏览器上看到的内容是多次调用的结果。我假设您不打算编写浏览器实现。

这解释了为什么你会在stackoverflow.com的情况下看到部分结果。你刚刚获得了准系统html页面。

现在,对于microsoft.com,请尝试在浏览器中加载页面。捕获第一个请求中发送的所有标头。在java代码中使用相同的标头。您应该看到一些结果,但不是之前解释的完整结果。