Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];

Вниз

Как получить Cookies с сайта? (Indy 9)   Найти похожие ветки 

 
McNail ©   (2009-09-18 15:37) [0]

Как получить Cookies с сайта?
ВЫполняю .Get("http://........com");
Получаю первый Cookie в idcookiemanager.
Далее на странице выполняется html-код и устанавливается второй Cookie.

В TWebBrowser сценарий сайта выполняется, а вот в indy не получается.
Как мне получить второй Cookie через indy Или получить Cookies из TWebbrouser, для дальнейшего использования в indy?


 
Медвежонок Пятачок ©   (2009-09-18 15:48) [1]

Далее на странице выполняется html-код и устанавливается второй Cookie.

Надо сделать тоже самое.


 
McNail ©   (2009-09-18 15:57) [2]


> Надо сделать тоже самое.

Как это сделать попроще? ))


 
McNail ©   (2009-09-18 15:58) [3]

Кстати WebBrowser1.OleObject.Document.cookie тоже возвращает только первый кук. А в C:\Documents and Settings\Admin\Cookies появляется два кука. Которые точно формируются этим сайтом и оба нужны


 
sniknik ©   (2009-09-20 10:22) [4]

куки это не заранее забитые и передаваемые с сервера файлы, это место для сохранения локальных установок/параметров про которые сервер ничего не знает. и делаются они локальным скриптом (т.е. > с сайта? их не получить).
и кстати они вовсе не обязательны, т.е. типа загрузил страничку и вот они, нет, они могут появляться от действий юзера (ну например, работает сайт на схемах "по умолчанию", и никаких куков, а после юзер выбирает определенную схему и  чтобы сохранить выбор создается "печенька" куда записывается выбранное), все зависит от программиста который сайт делал.

> Как это сделать попроще? ))
> возвращает только первый кук.
попросить юзера "погулять" по сайту, и ждать появления второго "кука".


 
McNail ©   (2009-09-21 15:44) [5]

Нашёл решение сам. Может не совсем красивое, но рабочее )))
Использую функцию UrlDownloadToFile (uses SHDocVw) вместо Indy, которая в запросах вставляет необходимые мне Cookie. Т.е. по сути создаю в Run-time невидимый браузер (TWebBrowser) за пределами формы, который выполяет сценарий сайта...


 
McNail ©   (2009-09-21 15:46) [6]

P.S. Спасибо за внимание к вопросу!! ))


 
Bolg   (2009-09-23 13:02) [7]

idcookiemanager глючный!!! И это в 10-х инди((( Если не хочешь иметь проблем с куками, работай с ними сам:
1. Загрузи страницу гетом.
2. Загляни в idhttp.Response.RawHeaders.text, там будет к примеру это:
HTTP/1.1 302 Moved Temporarily
Server: NoNaMe
Date: Wed, 23 Sep 2009 08:45:05 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-store, no-cache, must-revalidate
Expires: Wed, 23 Sep 2009 12:45:05 +0400
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie: session=YTo0OntzOjEwOiJzZXNzaW9uX2lkIjtzOjMyOiI1MDIxZmEyMWNlNjg3ZDgyZGViMzNiOW U2YTM0NGYzYSI7czoxMDoiaXBfYWRkcmVzczoDkXZpdHkiO2k; expires=Wed, 07-Oct-2009 08:45:05 GMT; path=/; domain=
Set-Cookie: session=YTo2OntzOjEwOiJzZXNzaW9uX2lkIjtzOjMyOiI1MDIxZmEyMWNlNjg3ZDgyZGViMzNiOW U2YTM0NGYzYSI7czoxMDoiaXBfYWRkcMCI7cZkiO36wNTtzO; expires=Wed, 07-Oct-2009 08:45:05 GMT; path=/; domain=
Location: /

3. Вынимаеш все строки начинающиеся с "Set-Cookie:", а в них все что между "Set-Cookie:" и ; (session=YTo2OntzOjEw...;)
4. Кидаешь все это дело в Request:
idhtp.Request.CustomHeaders.Text:="Cookie: "+cookies;

И все! Вот это тру красивое рабочее решение, а idcookiemanager у меня из 3-х сайтов пахал токо с одним.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-1288683989
pooh
2010-11-02 10:46
2012.03.18
аналог текстового редактора


2-1323102981
Prok186
2011-12-05 20:36
2012.03.18
Компонент TMediaPlayer: как при открытии AVI ...


15-1322389998
FormResize
2011-11-27 14:33
2012.03.18
Изменение размера формы


15-1322068711
Y
2011-11-23 21:18
2012.03.18
Как стать продвинутым пользователем?


15-1322239708
Димка На
2011-11-25 20:48
2012.03.18
Сложные судоки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский