Загрузка html-страницы с помощью java.net.URL

 
 
 
Сообщения:23
Пытаюсь с помощью класса URL получить html-страницу и, к примеру, вывести ее на экран.


URL url = new URL(address);
	
InputStream in = url.openStream();

while(in.available() > 0){
   out.write(in.read());
}

in.close();



На момент обращения к in.available() доступно только ~ 500 - 1000 байт запрошенной страницы. Соответственно и в out попадает не все.
При этом, если поставить breakpoint на while(in.available() > 0), то страница успевает прочитаться полностью. Как в данном случае дождаться полной загрузки страницы?
 
 
Сообщения:923
видимо вам надо дождаться, пока загрузится вся страница, потом уже в выводить её.

ЯроллеR
 
 
Сообщения:12
URL url = new URL(address);
	
InputStream in = url.openStream();
int i;
while((i=in.read())!=-1){
   out.write(i);
}

in.close();
 
 
Сообщения:2030
Рекомендую использовать BufferedInputStream

Всякое решение плодит новые проблемы
 
 
Сообщения:1850
Jean:
Рекомендую использовать BufferedInputStream

Тут это вряд ли будет полезным. Другое дело если бы данные поступали не через HTTP а с диска.
 
 
Сообщения:1240
        String address = "http://www.lenta.ru";
        URL url = new URL(address);
        BufferedReader br = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
        String s;
        while((s = br.readLine())!=null){
           System.out.println(s);
        }
        br.close();
 
 
Сообщения:23
new777, Vurn, спасибо, все работает!
 
 
Сообщения:14
а что бы не выдавало:
java.io.IOException: Server returned HTTP response code: 403 for URL
(лишь некоторые страницы не даются)
что необходимо дописать?
 
 
Сообщения:1209
peshehod.nsk:
а что бы не выдавало:
java.io.IOException: Server returned HTTP response code: 403 for URL
(лишь некоторые страницы не даются)
что необходимо дописать?


посмотреть что значит статус 403 и обработать IOException
 
 
Сообщения:14
l
masyan:
peshehod.nsk:
а что бы не выдавало:
java.io.IOException: Server returned HTTP response code: 403 for URL
(лишь некоторые страницы не даются)
что необходимо дописать?


посмотреть что значит статус 403 и обработать IOException


дело в том, что при загрузке браузером - все отлично.
но вот через java выдает 403.
насколько я понял надо себя за браузер выдать - еще какие то дополнительные параметры/куки передать, но какие и как?

например страница: https://csgo.tm/?t=17
при первом посещении сайта грузится окно с заголовком "checking your browser..." а потом подгружается сайт. и все последующие посещения сайта - этого окна (с проверкой) уже нет - а просто грузится страница на которую переходишь.
Изменен:05 янв 2017 13:03
 
 
Сообщения:1209
открывать консоль браузера и смотреть какие заголовки там передаются, какие запросы дополнительно ajax отправляются и все это имитировать, после чего выдасся скорее всего какая иудь кука, с которой можно делать запросы
 
 
Сообщения:14
консоль кроме ошибок загрузки изображений (изза adblock) ничего не написала мне толком.
поставил плагин live http headers

вот что примерно выдало:
Host: cdn.csgo.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: */*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://csgo.tm/
Cookie: __cfduid=de128b374a48501cc25b7ccf95032ff6b1483635659
Connection: keep-alive

POST /safebrowsing/downloads?client=navclient-auto-ffox&appver=50.1&pver=2.2&key=AIzaSyD_Drzahe4dBzGCZ9ArvowCvrPx_yFrlCM goog-badbinurl-shavar;a:118230-119144:s:121008-121167,121169-121184,121186-121204,121206-121924
 goog-downloadwhite-digest256;a:5-84:s:2-7,10-58
 goog-malware-shavar;a:245583-256686:s:240995-251969
 goog-phish-shavar;a:460668-468834:s:291784-294932,294934-294947,294949-294987,294989-295162,295164-295629,295631-295889,295891-296461,296463-301866
 goog-unwanted-shavar;a:69596-84940:s:63670-65061,65063-78458,78460-80362,80365-80640,80642-80645,80647-81747

GET /safebrowsing/rd/ChVnb29nLWJhZGJpbnVybC1zaGF2YXI4AEACSgwIARDFuAcYxbgHIAFKDAgAEOmiBxjpogcgAQ
GET /safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyOABAAkoMCAEQwrAPGMKwDyABSgwIABCv1Q8Yr9UPIAE
GET /safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhcjgAQAJKDAgBEKu2EhivthIgAUoMCAAQ484cGOPOHCAB
GET /safebrowsing/rd/ChRnb29nLXVud2FudGVkLXNoYXZhcjgAQAJKDAgAEM2XBRjNlwUgAQ


потом идут GET-ы картинок постоянно (наверное с чат окна)

4 кука, но повторяется только 1 (__cfduid) при запросах
НИ-чего не понимаю!)
Изменен:05 янв 2017 18:39
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет