2017-01-10 21 views
0

Эй, у меня здесь небольшая проблема. Я занимаюсь написанием файлов в школе, и у нас есть проблема с чтением веб-страницы. Как это возможно? Я пошел с JSoup и плагином Apache, но не работал, но мне нужно использовать чистый импорт.mIn java, как можно было бы загрузить веб-страницу в BufferedReader, так как мой не будет печатать?

Я немного нуб при кодировании, так что, вероятно, будет несколько ошибок! Вот мой код:

URL oracle = new URL("http://www.oracle.com/"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(oracle.openStream())); 

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

Там нет выхода из программы, и раньше мне удалось выход, но это было в виде HTML, однако я удалил этот код, иронический ищу исправления для этой проблемы.

Любая помощь или решения были бы очень признательны! Спасибо вам большое!

+0

Что значит «mine will not print_»? –

+0

@SotiriosDelimanolis Я очень устал, хорошо замечен. Я имел в виду мой код/​​решение – Samuelf80

+0

Ваш код не соответствует перенаправлению. Попробуйте 'https: // www.oracle.com/index.html'. – shmosel

ответ

2

Пример кода от Reading Directly from a URL, но учебник устарел. URL-адрес http://www.oracle.com теперь перенаправляется на https://www.oracle.com/, но вы не следуете за перенаправлением.

Если вы используете URL-адрес, который не перенаправлен, например http://www.google.com, вы увидите, что код работает.

Если вам нужна более надежная программа, которая обрабатывает переадресацию, вы, вероятно, захотите использовать HttpURLConnection вместо базового URL, так как у него есть больше возможностей для использования.

+0

Предостережение. URL-адрес google ('http: // www.google.com') может перенаправляться на локализованную версию/сайт, если к нему обращаются за пределами США. (т. е. из Англии, он может перенаправить вас на «https: // www.google.co.uk') – ochi

+1

Хорошая точка. Существует справедливая вероятность того, что многие современные веб-сайты будут так или иначе использовать переадресацию. Лучше всего использовать URL-адрес, для которого вы знаете ответ HTTP. – Matt

+0

Это работает! Но теперь я не могу его распечатать - все это отформатировано как HTML, когда оно печатается в виде строковой сборки и строки. Я попробовал stringbuilder с тегами html и без них, но безрезультатно. – Samuelf80