idhttp post提交网页时报'HTTP/1.1 405 Method Not Allowed'

aibeyond2003 2013-05-20 05:46:57
抓包数据:
POST /login.aspx HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
Referer: http://www.cnlinfo.net/login.aspx
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: www.cnlinfo.net
Content-Length: 229
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: Hm_lvt_8803f7fa56465a59d0c1a12ec666f533=1368799256,1368803521,1369021257,1369038720; Hm_lpvt_8803f7fa56465a59d0c1a12ec666f533=1369038720; bdshare_firstime=1367801140475; ASP.NET_SessionId=4nckfv55dmys20452gi2jvrm
__VIEWSTATE=%2FwEPDwUJODI5MjcyNzM1D2QWAgIDD2QWAgIFDw8WAh4EVGV4dAUFOCsxMz1kZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUHSW1nX0J0bv77TZpONe7QCO7Gu0iZqLY%2BmnKw&tbx_Name=test&tbx_pwd=test&Txt_code=21&Img_Btn.x=86&Img_Btn.y=10
代码:
procedure TForm1.SB_DLClick(Sender: TObject);
var
url:string;
Param:TStringList;
RStream:TStringStream;
begin
url:='http://www.cnlinfo.net/login.aspx';
idpost.Request.Referer:='http://www.cnlinfo.net/login.aspx';
idpost.Request.Host:='www.cnlinfo.net';
IDpost.Request.SetHeaders;
IDpost.Request.RawHeaders.Clear;
IDpost.HandleRedirects := true;
IDpost.HTTPOptions := IDpost.HTTPOptions + [hoKeepOrigProtocol];
IDpost.ProtocolVersion := pv1_1;
IDpost.Request.Accept := '*/*';
IDpost.Request.AcceptLanguage := 'zh-cn';
IDpost.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0)';
IDpost.Request.Connection := 'Keep-Alive';
IDpost.Request.CacheControl := 'no-cache';
IDpost.Request.ContentType := 'application/x-www-form-urlencoded';
//idpost.Request.ContentType:='multipart/form-data';
param:=TStringList.Create;
Rstream:=TStringStream.Create('');
param.Add('__VIEWSTATE='+chstrid+'');//验证字符串存于页面name="__VIEWSTATE",启动时GET网页提取并赋值给CHSTRID
param.Add('tbx_Name=go2013');
param.Add('tbx_pwd=go2013');
param.Add('Txt_code='+Edit3.Text+'');//验证码
param.Add('Img_Btn.x=64');
param.Add('Img_Btn.y=23');
idpost.post(url,param,Rstream);
memo1.Text:=utf8toansi(Rstream.DataString);
Rstream.Free;
end;



错误信息:环境D7+WIN7
...全文
709 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aibeyond2003 2013-05-21
  • 打赏
  • 举报
回复
收到,谢谢。应该是我的代码其它地方有错误。我昨天晚上改了一下是可以啦。谢谢!!结帖啦。
wzca 2013-05-21
  • 打赏
  • 举报
回复
我写的例子,给你QQ发离线文件了。 请注意查收。 good lucky
wzca 2013-05-20
  • 打赏
  • 举报
回复

//先加个全局变量
urlRedirect: string
//----------------
  Param.Add('tbx_Name=go2013');
  Param.Add('tbx_pwd=go2013');
  Param.Add('Txt_code=' + Edit1.Text + ''); // 验证码
  Param.Add('Img_Btn.x=64');
  Param.Add('Img_Btn.y=23');
  try
    Http.post(URL, Param, RStream);
    Memo1.Text := RStream.DataString;
  except
  end;
  Memo1.Text := Http.Get(urlRedirect);
  RStream.Free;
  Param.Free;
end;

procedure TForm1.HttpRedirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
  Memo2.Lines.Add(Format('dest=%s, NumRedir=%d, VMethod=%s', [dest, NumRedirect, VMethod]));
  if Pos('http://fa1.cnlinfo.net/vip/url.aspx', dest) > 0 then
    urlRedirect := dest;
end;

1,593

社区成员

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

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