2011-10-31 1 views
4

와 야후 웹 메신저에 연결하지만 난 당신의 브라우저 설정을 방지델파이 : 내가 야후 웹 메신저 에 연결하기 위해 델파이 XE2를 사용하여 간단한 코드를 작성 idhttp

이 페이지를보고있는 경우이 메시지를 얻을 에서 자동

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; 
+0

새로 생성 된 문자열 목록에서 '지우기'를 호출 할 필요가 없습니다. 그들은 이미 그런 식으로 시작합니다. –

+0

코드가'Handled : = True' 행에 도달합니까? – mjn

+2

@ lord_viper : 완전한 HTTP 트래픽을 앞뒤로 보지 않고도 진단하기가 어렵습니다. 보여줘. 표시 한 내용은 문자 메시지로 충분하지 않습니다. 기회는 서버가 문자 메시지가 나타날 때 리다이렉션 응답을 전송하지 않으며 그 일에 기여할 수있는 몇 가지 요인이 있습니다. 내 생각 엔 초기 요청이 잘못되었거나 형식이 잘못되었거나 서버에서 TIdHTTP가 수행 한 리디렉션을 발행했지만 후속 요청이 잘못되었거나 형식이 잘못되었거나 필요한 쿠키가 넘겨지지 않았을 수 있습니다. –

답변

1

이 페이지가 표시되는 경우, 브라우저 설정이하지 못할 새로운 UR로 리디렉션자동으로 새 URL로 리디렉션됩니다.

이것은 Fiddler에게 HTTP/1.1 200 OK으로 왔기 때문에 문제가 리디렉션되지 않았습니다.

나를 위해 일한 것은 단순히이 메시지가 왔고 정확하게 로그인 한 후에 전체 Button1Click을 반복하는 것이 었습니다. 그동안 수집 된 쿠키가 핵심 이었으므로 쿠키를 미리 설정하고 하나만 요청하면됩니다. 또는 도움이되지 않으면 수집 된 쿠키로 요청을 반복하십시오. 구조 할 TIdCookieManager!