powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WebClient: как получить страницу с использованием cookie?
25 сообщений из 36, страница 1 из 2
WebClient: как получить страницу с использованием cookie?
    #35192246
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что надо сделать, чтобы скачать страницу с сайта с помощью например WebClient.DownloadString с использованием Cookie (Необходимо для автоавторизации)?
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192291
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ИвановЧто надо сделать, чтобы скачать страницу с сайта с помощью например WebClient.DownloadString с использованием Cookie (Необходимо для автоавторизации)?

"автоавторизация" - звучит супер! Надо запомнить. :))

Cookie - это часть протокола HTTP, и искать их надо в Http...

Код: plaintext
1.
2.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://..."));
request.CookieContainer = new CookieContainer();
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192306
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диез"автоавторизация" - звучит супер! Надо запомнить. :))

Да уж. Мне тоже понравилось :-)

Диез
Код: plaintext
1.
2.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://..."));
request.CookieContainer = new CookieContainer();

и?
Вот так я получу куки

Код: plaintext
1.
2.
3.
4.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Cookie cookie = response.Cookies[0];

Вот так я получаю страницу:

Код: plaintext
1.
2.
3.
WebClient client = new WebClient();
client.Headers.Add("UserAgent", "Mozilla/5.0 (Windows; U; Windows NT 5.1;) Firefox/2.0.0.7");
string str = client.DownloadString("http://vkontakte.ru/friend.php");

Ну и как связать одно с другим то? Я понимаю, что мало в этом понимаю, но в какую сторону двигаться - не понимаю. :-)
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192321
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Иванов
Диез
Код: plaintext
1.
2.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://..."));
request.CookieContainer = new CookieContainer();

и?
Вот так я получу куки

Код: plaintext
1.
2.
3.
4.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Cookie cookie = response.Cookies[0];

Вот так я получаю страницу:

Код: plaintext
1.
2.
3.
WebClient client = new WebClient();
client.Headers.Add("UserAgent", "Mozilla/5.0 (Windows; U; Windows NT 5.1;) Firefox/2.0.0.7");
string str = client.DownloadString("http://vkontakte.ru/friend.php");

Ну и как связать одно с другим то? Я понимаю, что мало в этом понимаю, но в какую сторону двигаться - не понимаю. :-)

WebClient - это всего лишь высокоуровневая обертка над WebRequest. Если вам нужно более тонкое управление процессом, используйте только HttpWebRequest.

Код: plaintext
1.
2.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();

Внутри responseStream - то, что вам надо. Читайте его, например, с помощью StreamReader.

Код: plaintext
1.
2.
StreamReader rdr = new StreamReader(responseStream);
string result = rdr.ReadToEnd();

На память не помню, но где-то так...
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192323
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот не так давно разбирались. Там всё рабочее.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192332
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, на тот пост я уже наткнулся. Только теперь вопрос в том как попользовать те куки, что уже есть, чтобы зайти авторизованно на сервер, а так я получаю всего лишь страницу с вводом логина и пароля, т.к. не предъявил куков, ранее сохраненных браузером, например.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192341
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ИвановДа, на тот пост я уже наткнулся. Только теперь вопрос в том как попользовать те куки, что уже есть, чтобы зайти авторизованно на сервер, а так я получаю всего лишь страницу с вводом логина и пароля, т.к. не предъявил куков, ранее сохраненных браузером, например.

Ууу, это сложно. Даже у разных браузеров свои личные cookie-контейнеры, не говоря о всем обилии веб-клиентов.

Код: plaintext
1.
2.
%USER_HOME%/Cookies
%USER_HOME%/Application Data\Mozilla\Firefox\Profiles\?????????????\cookies.txt
%USER_HOME%/Application Data\Opera\Opera\profile\cookies4.dat

Если очень надо - пишите импортеры
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192351
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели так не работает?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Cookie  cookieObj;
cookieObj = new Cookie(“user", “Ya”);
string query = ""http://...";
HTTPWebRequest = request = new (HTTPWebRequest )WebRequest.Create(query);
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(cookieObj);
...
респонс
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192352
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиезУуу, это сложно. Даже у разных браузеров свои личные cookie-контейнеры, не говоря о всем обилии веб-клиентов.

Код: plaintext
1.
2.
%USER_HOME%/Cookies
%USER_HOME%/Application Data\Mozilla\Firefox\Profiles\?????????????\cookies.txt
%USER_HOME%/Application Data\Opera\Opera\profile\cookies4.dat

Если очень надо - пишите импортеры
Вот так всегда, на самом интересном месте... (с) м/ф
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192362
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий, попробуйте как я написал чуть выше.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192370
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredАнатолий, попробуйте как я написал чуть выше.
Попробовал - не помогло, либо я неправильно понял что выдирать из куки-файла (пока просто руками выдирал).
И еще: посмотрел, что кодировка приходящего текста windows-1251, попробовал перекодировать из нее в Unicode, но все равно всето русских букв получил "????"
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192372
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да обязательно перекодировать. Посмотрите как делал Вагнер по ссылке.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192378
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Encoding.ASCII.GetBytes();
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192382
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredда обязательно перекодировать. Посмотрите как делал Вагнер по ссылке.
C кодировкой получилось благодаря параметру у StreamReader, а вот с кукакми чего-то не то.
Ну например, насоздавал куков для vkontakte.ru (подсмотрел в файле куков, реальные значения заменены ;-) ):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
            request.CookieContainer = new CookieContainer();
            Cookie c = new Cookie("remixemail", "test%40test.ru", "/", @".vkontakte.ru");
            Cookie d = new Cookie("remixpass", "d111111111111111", "/", @".vkontakte.ru");
            Cookie e = new Cookie("remixmid", "11111111", "/", @".vkontakte.ru");
            Cookie f = new Cookie("remixchk", "6", "/", @".vkontakte.ru");
            request.CookieContainer.Add(c);
            request.CookieContainer.Add(d);
            request.CookieContainer.Add(e);
            request.CookieContainer.Add(f);
И фиг там, опять показывает страницу логина.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192384
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсылать нужно массив байт в смысле.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192387
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты get запрос используешь или post?
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192391
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй ещё так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Cookie  cookieObj;
CookieCollection cookieJar = new CookieCollection();

cookieObj = new Cookie(“user", “Joe”);
cookieJar.Add( cookieObj );

cookieObj = new Cookie(“item", “ISBN0123456789”);
cookieJar.Add( cookieObj )
request. CookieContainer = cookieJar ;
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192392
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredА ты get запрос используешь или post?
Явно не указываю, значит который по умолчанию.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192400
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HttpWebRequest.PreAuthenticate = true ?
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192403
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredHttpWebRequest.PreAuthenticate = true ?
Нет, но если даже включить, то все равно не работает
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192404
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй ещё только на HttpWebRequest.TransferEncoding подозрение
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192408
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredПожалуй ещё только на HttpWebRequest.TransferEncoding подозрение
В смысле? Там null и SendChunked = false
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192414
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, чё-то меня тоже зацепило. Анатолий, подскажите как русские буквы вылечили?
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192418
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredТак, чё-то меня тоже зацепило. Анатолий, подскажите как русские буквы вылечили?
разобрался. Буду решать проблему кукисов.
...
Рейтинг: 0 / 0
WebClient: как получить страницу с использованием cookie?
    #35192429
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
request. CookieContainer = cookieJar ;
Вот здесь говорит, что не может привести CookieCollection к CookieContainer
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WebClient: как получить страницу с использованием cookie?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]