Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

post/get запросы в Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> post/get запросы в Delphi
Имя
Сообщение << Старые топики   Новые топики >>
post/get запросы в Delphi - 2009-02-04 23:45:26.850000   
ydzero

Сообщений: 100
Оценки: 0
Присоединился: 2008-11-06 15:38:02.560000
Всем привет.
Помогите разобраться с post и get запросами с использованием Indy. Собственно, стоит такая задача, необходимо послать get запрос на url, но для доступа необходима авторизация.
Пытался через кукисы, т.е. подставлял куки авторизованного пользователя, но видать не умею. Как делал, подрубал TidCookieManager, цеплял к tidhttp, и через addcookie(ACookie:string, AHost:string) пихал, но при запросе куки вообще не отсылались, проверял снифером.
Post #: 1
RE: post/get запросы в Delphi - 2009-02-05 11:28:29.456666   
KentOne

Сообщений: 178
Оценки: 0
Присоединился: 2008-07-15 16:30:46.030000
Когда-то давно тож были проблемы с куками в Инди с TidCookieManage, с ним так ничего и не получилось, выбросил его с проекта. Вместо этого дописал такое: IdHTTP1.Request.CustomHeaders.Add(ncoockie); ncoockie - текстовая переменная в которой хранятся куки.
Для получения куков использовал пост с нужными параметрами:
var&nbsp; tst : TStringList; begin tst :=&nbsp; TStringList.Create; tst.Add('email=1.1@gmail.com'); tst.Add('pass=***'); Form1.IdHTTP1.Post('http://vkontakte.ru/login.php',tst,Stream); end; А потом поиск куков в том, что было возвращено (поиск сделан "через ж…", если есть время пиши свой):
procedure getCookie(st : string); var i,j : integer; &nbsp;&nbsp; ncoockie : string; begin ncoockie := ''; for i := 1 to length(st) do if copy(st,i,10) = 'Set-Cookie' then begin &nbsp;&nbsp; for j := i+11 to length(st) do &nbsp;&nbsp; if st[j] = ';' then &nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp; ncoockie := ncoockie + copy(st,i+11,j-i-10); &nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp; end; end; if length(ncoockie) &gt; 50 then begin &nbsp;&nbsp; ncoockie := 'Connection: Keep-Alive'+#13+'Cache-Control: no-cache'+#13+'Cookie: remixchk=5'+'Cookie: '+ncoockie; &nbsp;&nbsp; Form1.IdHTTP1.Request.CustomHeaders.Clear; &nbsp;&nbsp; Form1.IdHTTP1.Request.CustomHeaders.Add(ncoockie); end; end;
А теперь можно делать get:
&nbsp; stin&nbsp; := 'http://vkontakte.ru/id***'; &nbsp; st := Form1.IdHTTP1.Get(stin); st и stin - обычные string;
Post #: 2
RE: post/get запросы в Delphi - 2009-02-06 21:31:43.740000   
ydzero

Сообщений: 100
Оценки: 0
Присоединился: 2008-11-06 15:38:02.560000
quote:

ORIGINAL: KentOne

Когда-то давно тож были проблемы с куками в Инди с TidCookieManage, с ним так ничего и не получилось, выбросил его с проекта. Вместо этого дописал такое: IdHTTP1.Request.CustomHeaders.Add(ncoockie); ncoockie - текстовая переменная в которой хранятся куки.

Спасибо) Все равно не работает))

UPD
Кароче парил себе мозг как только мог, твой метод все таки сработал, но в первый раз в заголовок я добавлял этот ncookie, который текстовая строка, так ни че не получилось, седня только доперло, в headers, в браузере идет Cookie: bla bla bla, т.е. добавил перед текстом Cookie: и все заработало)
В общем, большое тебе спасибо, реально помог)
p.s. жахнул как полагаеться +
Post #: 3
RE: post/get запросы в Delphi - 2009-02-08 14:26:38.376666   
KentOne

Сообщений: 178
Оценки: 0
Присоединился: 2008-07-15 16:30:46.030000
Рад, что у тебя все получилось, удачи в начинаниях;)
Post #: 4
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> post/get запросы в Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.