如何用Delphi的IDHTTP组件连接到Yahoo Web Messenger实现即时通讯?
- 内容介绍
- 文章标签
- 相关推荐
本文共计494个文字,预计阅读时间需要2分钟。
使用Delphi XE2编写代码连接到Yahoo Web Messenger时,遇到了浏览器设置阻止自动跳转的问题。错误信息提示为:如果您看到此页面,您的浏览器设置阻止您自动跳转到新URL。程序单元 TForm2.Button。
以下是简化后的代码内容:
delphiprocedure TForm2.ButtonClick(Sender: TObject);begin // 尝试连接到Yahoo Web Messenger // ... // 如果浏览器设置阻止跳转,处理错误 if ContainsText(MessageBox, 'browser settings prevent') then begin // 显示错误信息或进行其他错误处理 ShowMessage('无法自动跳转,请检查浏览器设置。'); end;end;
我使用delphi xe2并编写一个简单的代码来连接到yahoo web messenger但是我得到了这个消息
If you are seeing this page, your browser settings prevent you from
automatically redirecting to a new 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=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('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;
If you are seeing this page, your browser settings prevent you from
automatically redirecting to a new URL.
这对于Fiddler来说是HTTP / 1.1 200 OK所以问题不在于重定向.
对我有用的只是在此消息出现后重复整个Button1Click并且我正确登录.在此期间收集的cookie是关键,因此您可以尝试仅发送一个请求,但预先设置了Cookie.或者,如果没有帮助,只需使用收集的cookie重复请求即可. TIdCookieManager救援!
本文共计494个文字,预计阅读时间需要2分钟。
使用Delphi XE2编写代码连接到Yahoo Web Messenger时,遇到了浏览器设置阻止自动跳转的问题。错误信息提示为:如果您看到此页面,您的浏览器设置阻止您自动跳转到新URL。程序单元 TForm2.Button。
以下是简化后的代码内容:
delphiprocedure TForm2.ButtonClick(Sender: TObject);begin // 尝试连接到Yahoo Web Messenger // ... // 如果浏览器设置阻止跳转,处理错误 if ContainsText(MessageBox, 'browser settings prevent') then begin // 显示错误信息或进行其他错误处理 ShowMessage('无法自动跳转,请检查浏览器设置。'); end;end;
我使用delphi xe2并编写一个简单的代码来连接到yahoo web messenger但是我得到了这个消息
If you are seeing this page, your browser settings prevent you from
automatically redirecting to a new 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=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('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;
If you are seeing this page, your browser settings prevent you from
automatically redirecting to a new URL.
这对于Fiddler来说是HTTP / 1.1 200 OK所以问题不在于重定向.
对我有用的只是在此消息出现后重复整个Button1Click并且我正确登录.在此期间收集的cookie是关键,因此您可以尝试仅发送一个请求,但预先设置了Cookie.或者,如果没有帮助,只需使用收集的cookie重复请求即可. TIdCookieManager救援!

