Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.18;
Скачать: CL | DM;

Вниз

Как получить 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
2-1323244056
Дмитрий_
2011-12-07 11:47
2012.03.18
восстановить курсор если найдена запись


2-1323105888
LDV
2011-12-05 21:24
2012.03.18
подход к разработке функционала для работы с бд


15-1321901455
KilkennyCat
2011-11-21 22:50
2012.03.18
скока стоит...


2-1322683472
Никита1990
2011-12-01 00:04
2012.03.18
Как определить дату БИОС?


15-1322338591
SQLEX
2011-11-27 00:16
2012.03.18
Как фильм называется про разведку