delphi: подключайтесь к Yahoo Messenger с помощью idhttp - PullRequest
4 голосов
/ 31 октября 2011

Я использую Delphi XE2 и пишу простой код для подключения к Yahoo Messenger, но я получаю это сообщение

Если вы видите эту страницу, настройки вашего браузера не позволяют автоматически перенаправлять на новуюUR

procedure TForm2.Button1Click(Sender: TObject);
var
idVar:TStringList;
Cookies:string;
begin
 idVar:=TStringList.Create; idVar.Clear;
 idVar.Add('.tries=1');
 idVar.Add('.src=vsu');
 idVar.Add('.md5=');
 idVar.Add('.hash=');
 idVar.Add('.js=');
 idVar.Add('.last=');
 idVar.Add('promo=');
 idVar.Add('.intl=us');
 idVar.Add('.bypass=');
 idVar.Add('.partner=');
 idVar.Add('.u=3p9b5hh7aiqbl');
 idVar.Add('.v=0');
 idVar.Add('.challenge=J5TQOMzQ9Sr5hwnIHYMiVyI2i1_M');
 idVar.Add('.yplus=');
 idVar.Add('.emailCode=');
 idVar.Add('pkg=');
 idVar.Add('stepid=');
 idVar.Add('.ev=');
 idVar.Add('hasMsgr=0');
 idVar.Add('.chkP=Y');
 idVar.Add('.done=http://webmessenger.yahoo.com/');
 idVar.Add('.pd=wmsgr_ver=0&c=B_VH9oa42e68KuzJEhSlKbE-&ivt=&sg=');
 idVar.Add('login='+edt1.Text);
 idVar.Add('passwd='+edt2.Text);
 idVar.Add('.persistent=y');
  Memo1.Text:=idhtp1.Post('https://login.yahoo.com/config/login?',idVar);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
idhtp1.CookieManager:=idckmngr1;
idhtp1.IOHandler:=idslhndlrscktpnsl1;
idhtp1.RedirectMaximum:=5000;
idhtp1.Request.BasicAuthentication:=False;
idhtp1.HandleRedirects := True;

idslhndlrscktpnsl1.SSLOptions.Method:=sslvSSLv23;
idhtp1.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)';
end;

procedure TForm2.idhtp1Redirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
Handled:=True;
end;

1 Ответ

1 голос
/ 06 декабря 2011

Если вы видите эту страницу, настройки вашего браузера не позволяют вам автоматическое перенаправление на новый URL.

Это пришло к Fiddler как HTTP/1.1 200 OK, поэтому проблема не в перенаправлении.

Для меня работало просто повторять целые Button1Click после того, как пришло это сообщение, и я правильно вошел в систему. Куки, которые были собраны в то же время, были ключом, поэтому вы можете попытаться отправить только один запрос, но с предварительно настроенными куки. Или, если это не помогает, просто повторите запрос с собранными куки. TIdCookieManager для спасения!

...