![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Не передаются Cookies.
Использую Indy 10.5.5 (из /tags/Indy 10.5.5 rev 38xx) (Авторизация в контакте) Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, sSkinManager, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, StdCtrls, ComCtrls, IdCookieManager,IdCookie, XPMan, IdURI;
type
TEnterForm = class(TForm)
IdHTTP1: TIdHTTP;
IdCookieManager1: TIdCookieManager;
Button1: TButton;
Log: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
EnterForm: TEnterForm;
login,pass,sid : String;
pdata:TStringList;
ur:TIdURI;
implementation
procedure TEnterForm.Button1Click(Sender: TObject);
begin
login:='***';
pass:='***';
IdHTTP1.AllowCookies:=True;
IdHTTP1.HandleRedirects:=True;
IdHTTP1.CookieManager:=IdCookieManager1;
sid:=IdHTTP1.Get('http://login.vk.com/?act=login&email='+login+'&pass='+pass+'&expire=&vk=');
sid:=copy(sid,pos('=''s'' value=''',sid)+17,51);
ur:=TIdURI.Create('vkontakte.ru');
ur.Host:='vkontakte.ru';
ur.Path:='/';
IdHTTP1.CookieManager.AddCookie('remixap=1;',ur);
IdHTTP1.CookieManager.AddCookie('remixlang=0;',ur);
IdHTTP1.CookieManager.AddCookie('remixchk=5;',ur); {По идее эту печеньку должны были установить}
IdHTTP1.CookieManager.AddCookie('remixsid='+sid+';',ur);
pdata:=TStringList.Create;
pdata.Add('s='+sid);
pdata.Add('op=slogin');
pdata.Add('redirect=1');
pdata.Add('expire=0');
pdata.Add('to=');
IdHTTP1.Post('http://vkontakte.ru/login.php', pdata);
feed:=IdHTTP1.Get('http://vkontakte.ru/feed.php');
log.Lines.Add(Feed); // Тут получаем логин-форму
for i:=0 to EnterForm.IdHTTP1.CookieManager.CookieCollection.Count-1 do
log.Lines.Add(EnterForm.IdHTTP1.CookieManager.CookieCollection.Items[i].CookieText);
pdata.Free;
end;
end.Получаем это: Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<script>
var t = setTimeout("location.href='http://vkontakte.ru/login.php?op=logout'", 7000);
</script>
</head>
<body>
<div>
<img src="http://vkontakte.ru/images/progress.gif">
</div>
<form id="f" name="f" method="post" action="http://vkontakte.ru/feed.php">
<input type='hidden' name='pda' value='' />
</form>
<iframe name="mf" onload="try{if (this.contentWindow.location.href.indexOf('slogin') != -1) {clearTimeout(t); if (this.contentWindow.location.href.indexOf('nonenone') != -1) {location.href='http://vkontakte.ru/login.php?op=logout&to=ZmVlZC5waHA-'; return false;} document.f.submit();}} catch(e) {}" border="0" style="border:0px; background-color:#FFF" src="http://login.vk.com/?vk=" width="1" height="1"></iframe>
</body>
</html>
remixap=1; path=/; domain=.vkontakte.ru
remixlang=0; path=/; domain=.vkontakte.ru
remixchk=5; path=/; domain=.vkontakte.ru
remixsid=4800000000000000000000000000000000вырезанно8b89da79; path=/; expires=Fri, 12-Aug-2011 18:07:55 GMT; domain=.vkontakte.ruПервое что не понятно, почему в домене перед самой строкой появляется точка. И второе, где те Cookies которые дал сервер ?Заранее спасибо за помощь ![]() Последний раз редактировалось X-rem, 12.08.2010 в 22:21. |