Данные не возвращаются по запросу URL - Java - PullRequest
0 голосов
/ 12 июня 2018

Когда я запускаю эту 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, но не полный HTML, как я видел бы в веб-браузере.Может кто-нибудь объяснить, что здесь происходит?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

То, что вы видите в браузере, является результатом нескольких обращений к серверу.При первом вызове загружается HTML верхнего уровня.Браузер анализирует то же самое и делает несколько вызовов обратно на сервер, чтобы получить другие ресурсы, такие как js, css, изображения и т. Д.

применяются js, css и т. Д.Это, в свою очередь, может привести к загрузке дополнительных данных с сервера и обновлению HTML.То, что вы видите в браузере, является результатом нескольких вызовов.Я предполагаю, что вы не планируете писать реализацию браузера.

Это объясняет, почему вы видите частичный результат в случае stackoverflow.com.Вы только что получили открытую HTML-страницу.

Теперь для microsoft.com попробуйте загрузить страницу в браузере.Захватите все заголовки, которые были отправлены в первом запросе.Используйте те же заголовки в вашем коде Java.Вы должны увидеть некоторый результат, но не полный, как объяснено ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...