idhttp提交出现http/1.1 405 method not allowed(xe,indy10)
我用idhttp登录一个https的网站,主要代码如下:
IdHTTP1.AllowCookies := False;
IdHTTP1.ReadTimeout := 20000;
IdHTTP1.Request.Host := 'upay.10010.com';
//设置cookie,我是先用webbrower获取的登录页cookie,验证码也取到了,
IdHTTP1.Request.CustomHeaders.Text :='Cookie: '+WebBrowser1.OleObject.document.cookie;
IdHTTP1.Request.Referer := 'https://upay.10010.com/web/BankCharge/BankChargeInit'; //请求来路
IdHTTP1.Request.AcceptEncoding := 'gzip, deflate';
IdHTTP1.Request.AcceptLanguage := 'zh-cn,utf-8;q=0.5';
IdHTTP1.Request.Accept := 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,'
+' application/x-shockwave-flash, application/x-ms-application, '
+'application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*';//接收
IdHTTP1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;'
+' SV1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52;'
+' .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)';
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';//接收内容类型
IdHTTP1.AllowCookies := True;
//构建信息数据,按抓包格式填写
PfData := TStringList.Create;
response := '';
try
PfData.Clear;
PfData.Add('secstate.state='+ secstate); //页面状态值
PfData.Add('bankChargeBean.payFee=20'//应支付金额,实际金额
PfData.Add('bankChargeBean.cardValue=2000'); //卡面值
PfData.Add('bankChargeBean.cardValueCode=01'); //面值代码 01
PfData.Add('bankChargeBean.userTel=13166731126');//'+ lvcz.Items[0].SubItems[1]); //电话
PfData.Add('bankChargeBean.regionCode=');
PfData.Add('bankChargeBean.netType =01');//
//20元卡
PfData.Add('cardValueHidden=2000'); //面值
PfData.Add('cardValCodeHidden=01'); //代码
PfData.Add('offerPriceStrHidden=19.70'); //实际金额
//30元卡
PfData.Add('cardValueHidden=3000');
PfData.Add('cardValCodeHidden=02');
PfData.Add('offerPriceStrHidden=29.55');
//50元卡
PfData.Add('cardValueHidden=5000');
PfData.Add('cardValCodeHidden=03');
PfData.Add('offerPriceStrHidden=49.25');
//100元卡
PfData.Add('cardValueHidden=10000');
PfData.Add('cardValCodeHidden=04');
PfData.Add('offerPriceStrHidden=98.50');
//300元卡
PfData.Add('cardValueHidden=30000');
PfData.Add('cardValCodeHidden=05');
PfData.Add('offerPriceStrHidden=295.50');
PfData.Add('numbean.userNumBean.netType=');
PfData.Add('numbean.userNumBean.regionCode=');
PfData.Add('numbean.userNumBean.userSelNum=1');
PfData.Add('numbean.userNumBean.otherNum=13166731126'); //电话号
PfData.Add('verifyCode='+ vfcode); //验证码
PfData.Add('numbean.cityCodeBean.provinceId =');
PfData.Add('numbean.cityCodeBean.cityId=');
PfData.Add('cardValCodeHidden=');
PfData.Add('numbean.cityCodeBean.cityCode=');
PfData.Add('numbean.userNumBean.telNum=');
datastr := TStringStream.Create('');
// PfData.Add('czMoney='+ RMB_20);
IdHTTP1.Post(POSTURL_BANKAPPLY, PfData, datastr);//到这里出异常 http/1.1 405 当前的post方法不允许,但是截取包就是这么提交的。
datastr.Free;
大神们帮助看看.