高分求解!!delphi中用idhttp模拟登录(post)没有反应?登录不上?

xtfnpgy 2011-11-19 04:04:44
先把网址发下:http://www.pinnaclesports.com/
因为是美国网址,需要代理才能登录的上,这个我本地已经用了代理,可以连接的到,首页的网页数据也可以获取的到,但就是登录不了。。。 我用httpanalyser跟踪到登录的真实URL地址是:https://www.pinnaclesports.com/Secure/LoginPage.aspx?destination=sports,
用post登录后无任何反应,如果我用一个错误的用户名和密码,很快就回返回信息,可以获取到登录失败的页面信息,所以判断提交的数据应当没有问题,不知道这个网址是否需要加上cookies,我试过加上cooikes页面的信息也是没反应,所以很郁闷。。。请Indy10的高手们指点下问题出在哪里。。。



。。。。。。。。。。。。。。。。。。。。。请大家耐心看完我的代码。。。。。。。。。。。。。。。
我的代码:
PinnacleSport_HTTP := TIdHTTP.Create(nil);
turlList := TStringList.Create;
Stream := TStringStream.Create('');
PinnacleSport_HTTP.HandleRedirects := True;
http_str := 'http://www.pinnaclesports.com/';
PinnacleSport_HTTP.Request.Referer := http_str;
PinnacleSport_HTTP.IOHandler := idslhndlrscktpnsl1; //https开头应设置该选项
PinnacleSport_HTTP.ProtocolVersion := pv1_1;
PinnacleSport_HTTP.HTTPOptions := [hoKeepOrigProtocol,hoForceEncodeParams];
try
turlList.Add('__EVENTTARGET=' + __EVENTTARGET); //__EVENTTARGET这些值都正确的获取的到
turlList.Add('__EVENTARGUMENT=' + __EVENTARGUMENT);
turlList.Add('__LASTFOCUS=' + __LASTFOCUS);
turlList.Add('__VIEWSTATE=' + __VIEWSTATE);
turlList.Add('__PREVIOUSPAGE=' + __PREVIOUSPAGE);
turlList.Add('ctl00$LDDL=' + LDDL);
turlList.Add('ctl00$PSDDL=' + PSDDL);
turlList.Add('ctl00$MCPH$LF$UserName=' + _user);
turlList.Add('ctl00$MCPH$LF$Password=' + _pass);
turlList.Add('ctl00$MCPH$LF$LanguageID=' + LanguageID);
turlList.Add('ctl00$MCPH$LF$PriceStyle=' + PriceStyle);
turlList.Add('ctl00$MCPH$LF$LinesTypeView=' + LinesTypeView);
turlList.Add('ctl00$MCPH$LF$MemberServer=' + MemberServer);
turlList.Add('dvc=' + dvc);

http_str :='https://www.pinnaclesports.com/Secure/LoginPage.aspx?destination=sports';

PinnacleSport_HTTP.Post(http_str, turllist,Stream); //执行一直无反应,在下行设置断点也一直跳转不到下一行

s := stream.DataString;
finally
turlList.free;
stream.Free;

end;

。。。。。。。。。。。。。。。。。。。。。我的代码结束。。。。。。。。。。。。。。。



---------------------------httpanalyser工具抓包数据如下-----------------------------------------
https://www.pinnaclesports.com/Secure/LoginPage.aspx?destination=sports
头信息页面:
(Request-Line) : POST /Secure/LoginPage.aspx?destination=sports HTTP/1.1
Accept :image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer : http://www.pinnaclesports.com/
Accept-Language : zh-cn
Content-Type : application/x-www-form-urlencoded
Accept-Encoding : gzip, deflate
User-Agent : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; 360SE)
Host : www.pinnaclesports.com
Content-Length : 6430
Connection : Keep-Alive
Cache-Control : no-cache
Cookie :.ASPXANONYMOUS=IIcmRhfZzAEkAAAAZjk4M2YyZGUtZTBjYy00NDIzLWE1OWEtOTVkODVkM2I4ZTZhOMMKKD48qzaHmYo3GtQRkUTExEk1; ASP.NET_SessionId=lbsvh5iopbkpbnxvgwzva1px; .ASPXAUTH=3190F99220107F7644D49190C24A10B40353FD62818E598FFDF42873E331A6DB3FF69C28C4C00BDFC925BD690409B5115132C12D3B24B885B9DD02CA2BC6BF811E530424E091917259CE318B55B41656AAC1FCE4DD77B22F16B337DA9CD74597D11C03512D16A2D00F4D8C8799A3FF70E71EC58F5E5AFC29BDD448E85881E1EC29134201; psCDN=CDN1; PCTR=636146655275221416; UserPrefsCookie=languageId=4&priceStyle=american&linesTypeView=s; LastPageCookie=url=http://www.pinnaclesports.com/default.aspx&time=2011/11/14 涓嬪崍 07:14:24; vidi=3655cd75aa5f4d869e316f8fba7a4148; MemberServerCookie=www2.pinnaclesports.com; enhanced=pass


cookies页面:
.ASPXANONYMOUS = IIcmRhfZzAEkAAAAZjk4M2YyZGUtZTBjYy00NDIzLWE1OWEtOTVkODVkM2I4ZTZhOMMKKD48qzaHmYo3GtQRkUTExEk1
ASP.NET_SessionId = lbsvh5iopbkpbnxvgwzva1px
.ASPXAUTH =3190F99220107F7644D49190C24A10B40353FD62818E598FFDF42873E331A6DB3FF69C28C4C00BDFC925BD690409B5115132C12D3B24B885B9DD02CA2BC6BF811E530424E091917259CE318B55B41656AAC1FCE4DD77B22F16B337DA9CD74597D11C03512D16A2D00F4D8C8799A3FF70E71EC58F5E5AFC29BDD448E85881E1EC29134201
psCDN = CDN1
PCTR = 636146655275221416
UserPrefsCookie = languageId=4&priceStyle=american&linesTypeView=s
LastPageCookie = url=http://www.pinnaclesports.com/default.aspx&time=2011/11/14 涓嬪崍 07:14:24
vidi = 3655cd75aa5f4d869e316f8fba7a4148
MemberServerCookie = www2.pinnaclesports.com
enhanced = pass

发送数据页面信息:
__EVENTTARGET=ctl00$LF$LB
__EVENTARGUMENT=
__LASTFOCUS=
__VIEWSTATE=/wEPDwUKMTMwOTM4MzY1Ng9kFgJmD2QWBAIBD2QWBAIEDxYCHgRUZXh0BVQNCjxtZXRhIG5hbWU9InZlcmlmeS12MSIgY29udGVudD0icm9PcmM5SWNkeVlUWCtUNmdabU83ZVB6MzBFY0tHZVdOQmpubDNaeVpBST0iIC8+DQpkAgkPZBYCZg8WAh8ABY4BPHN0eWxlIHR5cGU9InRleHQvY3NzIj4qLmkge2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHA6Ly9jZG4ucGlubmFjbGVzcG9ydHMuY29tL1Jlc291cmNlcy91cGxvYWRlZGltYWdlcy9HdWVzdFNlY3Rpb24vY29tYmluZWQyNC5wbmcpO308L3N0eWxlPmQCAw8WBh4FY2xhc3MFB2xhbmRpbmceBm9ubG9hZAUyamF2YXNjcmlwdDpQN19pbml0UE0oMSw4LDAsLTIwLDIpO1A3X2luaXRUUCg0LCAwKTseCG9udW5sb2FkBRZqYXZhc2NyaXB0Om9uVW5sb2FkKCk7FgICAQ9kFgQCAw9kFgICAQ9kFgRmDxBkZBYBAgNkAgEPEGRkFgFmZAIFD2QWCgIBDxYCHglpbm5lcmh0bWwFTTxwPuatoei/juWKoOWFpVBpbm5hY2xl6auU6IKy5Y2a5b2pIOKAkyDmnInmnIDkvbPmsLTkvY3nlbbnhLbotI/lvpfmm7TlpJo8L3A+ZAICDxYCHwQFrAI8YSBocmVmPSIvU2VjdXJlUmVkaXJlY3QuYXNweD9sbms9c2VjdXJlL3NpZ251cC5hc3B4JmFtcDtpY289aG9tZSZhbXA7aWNsPW9wZW4iPjxpbWcgdGl0bGU9Iueri+WIu+WKoOWFpSIgaGVpZ2h0PSI2MiIgYWx0PSLnq4vliLvliqDlhaUiIHNyYz0iaHR0cDovL2Nkbi5waW5uYWNsZXNwb3J0cy5jb20vUmVzb3VyY2VzL3VwbG9hZGVkaW1hZ2VzL1Rlc3RfKENNU19Gb2xkZXJfU3RydWN0dXJlKS9QaW5uYWNsZXNwb3J0cy9Ib21lL2NoaXRfb3BlbmFjY291bnRfYnV0LnBuZyIgd2lkdGg9IjQ3NiIgYm9yZGVyPSIwIiAvPjwvYT5kAgMPFgIfBAVbPHVsPgo8bGk+MS4g6ZaL6Kit6LOs5oi2PC9saT4KPGxpPjIuIOe1puizrOaItuWFheWAvDwvbGk+CjxsaT4zLiDplovlp4votI/mm7TlpJo8L2xpPgo8L3VsPmQCBA8WAh8EBfEKPGRpdiBjbGFzcz0iaXRlbSBpIj4NCgk8ZGl2IGNsYXNzPSJ0aXRsZSI+6auU6IKyPC9kaXY+DQoJPGRpdiBjbGFzcz0iaW1nIiBpZD0idGhyZWVfYmFubmVyXzEiPjxhIHRpdGxlPSJUb2RheSdzIEdhbWUiIGhyZWY9Ii9MZWFndWUvU29jY2VyL1RvZGF5cytHYW1lcy9MaW5lcy5hc3B4P2ljbz1ob21lJmFtcDtpY2w9Ym94MSI+PGltZyB0aXRsZT0iVG9kYXkncyBHYW1lIiBhbHQ9IlRvZGF5J3MgR2FtZSIgc3JjPSJodHRwOi8vY2RuLnBpbm5hY2xlc3BvcnRzLmNvbS9SZXNvdXJjZXMvdXBsb2FkZWRpbWFnZXMvVGVzdF8oQ01TX0ZvbGRlcl9TdHJ1Y3R1cmUpL01haW5fU2l0ZS9Ib21lL1RocmVlX0Jhbm5lcnMvYWxsX3NvY2Nlcl9wcm9tb19ib3gucG5nIiBib3JkZXI9IjAiIC8+PC9hPjwvZGl2Pg0KCTxkaXYgY2xhc3M9ImRlc2MiPuatkOa0sui2s+WNlCAtIOi2hee0muebgzwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJpdGVtIGkiPg0KCTxkaXYgY2xhc3M9InRpdGxlIj7nj77loLTmu77nkIM8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJpbWciIGlkPSJ0aHJlZV9iYW5uZXJfMiI+PGEgdGl0bGU9IkxpdmUgIEJldHRpbmciIGhyZWY9Ii9vbmxpbmVzcG9ydHNiZXR0aW5nb2Rkcy9zb2NjZXIvbGl2ZWlucGxheS5hc3B4P2ljbz1ob21lJmFtcDtpY2w9Ym94MSI+PGltZyB0aXRsZT0iTGl2ZSBCZXR0aW5nIiBhbHQ9IkxpdmUgQmV0dGluZyIgc3JjPSJodHRwOi8vY2RuLnBpbm5hY2xlc3BvcnRzLmNvbS9SZXNvdXJjZXMvdXBsb2FkZWRpbWFnZXMvR3Vlc3RfU2VjdGlvbi9MYW5kaW5nX1BhZ2UvVGhyZWVfQmFubmVycy9jaGl0X2xpdmVfYmV0dGluZ19wcm9tb19ib3gxX3NvY2Nlci5qcGciIGJvcmRlcj0iMCIgLz48L2E+PC9kaXY+DQoJPGRpdiBjbGFzcz0iZGVzYyI+54++5aC05ru+55CDPC9kaXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9Iml0ZW0gaSI+DQoJPGRpdiBjbGFzcz0idGl0bGUiPuWom+aoguWgtDwvZGl2Pg0KCTxkaXYgY2xhc3M9ImltZyIgaWQ9InRocmVlX2Jhbm5lcl8zIj48YSB0aXRsZT0iSGlnaCBTdGFrZXMgQ2FzaW5vIEdhbWluZyBhbmQgQ2FzaW5vIENhc2ggQmFjayIgaHJlZj0iL3Bpbm5hY2xlY2FzaW5vLmFzcHg/aWNvPWhvbWUmYW1wO2ljbD1ib3gzIj48aW1nIGFsdD0iSGlnaCBTdGFrZXMgQ2FzaW5vIEdhbWluZyBhbmQgQ2FzaW5vIENhc2ggQmFjayIgc3JjPSJodHRwOi8vY2RuLnBpbm5hY2xlc3BvcnRzLmNvbS9SZXNvdXJjZXMvdXBsb2FkZWRpbWFnZXMvR3Vlc3RfU2VjdGlvbi9MYW5kaW5nX1BhZ2UvVGhyZWVfQmFubmVycy9jYXNpbm9fcHJvbW9fYm94Mi5wbmciIGJvcmRlcj0iMCIgLz48L2E+PC9kaXY+DQoJPGRpdiBj...
__PREVIOUSPAGE=2eoCOYt8-BaH3Fk4TmLAjNDipT_VBAaVYOUq08FQtLoUD6yQNdxYWcgAm6WCzq7jEhWHYHfkfoYqy2Phd4oKcdp4J4U1
ctl00$LDDL=4
ctl00$PSDDL=american
ctl00$MCPH$LF$UserName=用户名
ctl00$MCPH$LF$Password密码
ctl00$MCPH$LF$LanguageID=4
ctl00$MCPH$LF$PriceStyle=american
ctl00$MCPH$LF$LinesTypeView=s
ctl00$MCPH$LF$MemberServer=www2.pinnaclesports.com
dvc=d

...全文
1105 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtfnpgy 2011-11-27
  • 打赏
  • 举报
回复
跟踪了下idhttp.get,发现卡住是在Result := IOHandler.ReadLn;这一行,谁给解释下这句的意思或分析下原因:
function TIdCustomHTTP.InternalReadLn: String;
begin
Result := IOHandler.ReadLn; //一直执行不到下一句
if IOHandler.ReadLnTimedout then begin
raise EIdReadTimeout.Create(RSReadTimeout);
end;
end;
xtfnpgy 2011-11-25
  • 打赏
  • 举报
回复
语句那里肯定没问题的,我怀疑是网站https开头的都是用SSL加密的,可能用idhttp登录的时候,服务器发现来源不对,就一直没有返回信息;
CassiaBlossom 2011-11-24
  • 打赏
  • 举报
回复
PinnacleSport_HTTP.Post(http_str, turllist,Stream); //执行一直无反应,在下行设置断点也一直跳转不到下一行
这里有问题,请仔细检查一下
xtfnpgy 2011-11-21
  • 打赏
  • 举报
回复
登录时提交的下面的参数就是从首页获取的,所以首页可以用idhttp可以get的到。
turlList.Add('__EVENTTARGET=' + __EVENTTARGET); //
turlList.Add('__EVENTARGUMENT=' + __EVENTARGUMENT);
turlList.Add('__LASTFOCUS=' + __LASTFOCUS);
turlList.Add('__VIEWSTATE=' + __VIEWSTATE);
turlList.Add('__PREVIOUSPAGE=' + __PREVIOUSPAGE);
turlList.Add('ctl00$LDDL=' + LDDL);
turlList.Add('ctl00$PSDDL=' + PSDDL);
turlList.Add('ctl00$MCPH$LF$UserName=' + _user);
turlList.Add('ctl00$MCPH$LF$Password=' + _pass);
turlList.Add('ctl00$MCPH$LF$LanguageID=' + LanguageID);
turlList.Add('ctl00$MCPH$LF$PriceStyle=' + PriceStyle);
turlList.Add('ctl00$MCPH$LF$LinesTypeView=' + LinesTypeView);
turlList.Add('ctl00$MCPH$LF$MemberServer=' + MemberServer);
xtfnpgy 2011-11-21
  • 打赏
  • 举报
回复
我本地IE不设置代理,IDHTTP访问主页的时候http://www.pinnaclesports.com/,就会报socket error: 10054 Connection reset by peer,但是我本地IE设置了代理(既增加了虚拟连接)之后,在程序那里主页的数据是可以获取到的,但就是登录不了。。所以应当不是设置代理的问题。
皮卡 2011-11-20
  • 打赏
  • 举报
回复
是不是IE连接代理没设置
Mit1208 2011-11-20
  • 打赏
  • 举报
回复
既然需要使用代理才可以访问这个网页.
那你要把代理赋值给IDHTTP啊.
你直接设置本地IE,跟IDHTTP没关系的.
我看见佛 2011-11-20
  • 打赏
  • 举报
回复
这分真高!
xtfnpgy 2011-11-20
  • 打赏
  • 举报
回复
咋没一个人说话呢。。。想起来了,今天是星期天,都去happy去了,请大侠们上班后帮我看看啊

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧