Java чтение из потока URL работает выборочно - PullRequest
0 голосов
/ 30 января 2019

Сводка : пример кода Java, который читает по URLConnection, читает только определенные URL-адреса, а не другие.

Подробности : у меня есть этот пример кода Java, который яиспользуя для чтения через URLConnection.Когда URL-адрес «http://www.example.com",, код считывает содержимое страницы без каких-либо проблем. Однако, если URL-адрес« http://www.cnn.com",, содержимое страницы не читается

public class StackOverflow {
    public static void main(String[] args) throws Exception {
        BufferedReader inputStream = null;
        try {
            String urlStr = "http://www.cnn.com"; // Does not work
//          urlStr = "http://www.example.com"; // **Works if this line is uncommented**

            URL url = new URL(urlStr);

            inputStream = new BufferedReader(new InputStreamReader(url.openStream()));

            String textLine = null;
            while((textLine = inputStream.readLine()) != null) {
                System.out.println(textLine);
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            if(inputStream != null) inputStream.close();
        }
    }
}

1 Ответ

0 голосов
/ 30 января 2019

CNN перенаправляет с http на https, но ваш звонок не следует перенаправлениям.Вы получаете 307 с пустым телом, поэтому readline приводит к нулю, и ваш цикл пропускается.Попробуйте с https для CNN.

...