JAVA: Как я могу загрузить HTML-файл с сайта, для которого требуются файлы cookie? - PullRequest
3 голосов
/ 28 февраля 2012

Я пытаюсь загрузить файл HTML с сайта.Я использую следующий простой метод:

 URL url = new URL("here goes the link to the html file");
 BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
 String htmlfile = "";
 String temp;
 while ((temp = br.readLine()) != null) {
       htmlfile+= temp;
 }

Проблема в том, что я получаю следующую строку в переменной htmlfile:

The installation of ... requires the acceptance of a cookie by your browser    
software.    The cookie is used to ensure that you and only you are 
able to access information ....

Другими словами, мне нужно несколько включитькуки при открытии потока с URL.Можно ли добиться этого с помощью URL или мне нужен другой метод?Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

Вы можете использовать addRequestProperty(), чтобы установить cookie для объекта URLConnection, например,

URL url = new URL("here goes the link to the html file");
URLConnection connection = url.openConnection();
connection.addRequestProperty("Cookie", "here goes the cookie");
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));

Если cookie не известен заранее, но устанавливается ответом на предыдущий HTTP-запрос, тогда можно использовать getHeaderFields() и т. Д. В экземпляре URLConnection, представляющем предыдущий HTTP-обмен получить куки.

1 голос
/ 28 февраля 2012

Если вы используете хорошую библиотеку, такую ​​как Apache HttpComponents

http://hc.apache.org/index.html

, она позаботится об управлении файлами cookie для вас.

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