Delphi下IdHTTP组件POST注册网页表单

这个是以前写的一个注册会员的代码段,不论如何还是比较完整的。按照常规的,必须是先来GET那个引导你注册的网页,并且获取Cookie以便后面POST数据的时候用,我这里就省略了,因为我当时的ASP程序会判断UserAgent的,如果UserAgent与提交的不吻合,那么会返回缺少参数之类的字符串,总之用IE等浏览器,你是绝对无法打开那个提交注册的网页的。好了,不费话了,直接给出下面的代码:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  UserName    : String;
  Password    : string;

  PostURL     : String;
  aParams     : TStringList;
  Response    : TStringStream;
begin
  UserName := Trim(Edit1.Text);
  password := Trim(Edit2.Text);

  IdHTTP1  := TIdHTTP.Create(nil);
  aParams  := TStringList.Create;
  Response := TStringStream.Create('');

  PostURL  := 'http://www.lsworks.net/regck.asp?action=add'; {提交网址}
  try
    aParams.Clear;
    aParams.Add('password=' + password);
    aParams.Add('re_password=' + password);
    aParams.Add('regcode=' + MacAddress);
    aparams.Add('submit=%A1%A1%CC%E1+%BD%BB+%D7%A2+%B2%E1+%D0%C5+%CF%A2%A1%A1');
    aParams.Add('username=' + UserName);
    IdHTTP1.ProtocolVersion := pv1_1;
    IdHTTP1.Request.UserAgent := 'LsWorks';
    IdHTTP1.Request.Referer := 'http://www.lsworks.net/reg.asp';
    IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHttp1.HandleRedirects := True;
    IdHTTP1.Post(PostURL, aParams, Response); {提交}
    Application.ProcessMessages;
    ShowMessage(Response.DataString);
    if Response.DataString = '注册成功!' then Application.Terminate;
  finally
    IdHTTP1.Free;
    aParams.Free;
    Response.Free;
  end;
end;


上一篇: HTTP协议中的HEAD指令
下一篇: 如何编写需要启动参数的Delphi程序
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Delphi idHTTP 组件 POST 注册 网页 表单
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭