idhttp

解决方案 »

  1.   

    详细解释一下问题: 
    1、我post一个网站的登录页,如:http://www.123.com/login.asp 
    2、成功后,它会返回一个http://www.123.com/index.asp给我。。 
      (如果我用ie提交并用监视软件看了一下,有2条记录,一条是post,一条是get的。但是如果我用idhttp的话,2条都是post) 
    ie 
      post  http://www.123.com/login.asp 
      get  http://www.123.com/index.asp(自动返回的) 
    idhttp 
      post http://www.123.com/login.asp 
      post http://www.123.com/index.asp(自动返回的,还是post,而且如果还有返回其它的信息都是post-_-!!) 
    这是什么原因泥?
      

  2.   

    procedure TForm1.BitBtn12Click(Sender: TObject);
    var
      postData:TStringList;
    begin
      postData:=TStringList.Create;
      postData.Add('username=test');
      postData.Add('password=test11');
      IdHTTP1.HandleRedirects:=true;
      IdHTTP1.Request.Referer:='http://www.95898.org';
      IdHTTP1.Post('http://www.95898.org/checkLogin.asp?action=login',postData);
    end;
    这样可以登录,但抓包看全是post 用IE登录一次post,一次get
      

  3.   

    可能是这样的
    当你用Post的时候,idhtp会记录请求的方法类型
      TIdHTTPMethod = (hmHead, hmGet, hmPost, hmOptions, hmTrace, hmPut, hmDelete, hmConnect);
    idhtp检测到有转向的时候,如果你没有定义自己的转向处理事件
    它就会调用默认的转向方法,自然是用记录的方法类型来执行
    如果你想自己处理,可以在
    OnRedirect事件里来处理
    具体可以看看idhttp的代码
      

  4.   

    minizhuxianchun 兄说的无道理,不懂虚心请教很正常。
    wintergoes 兄说的有道理,小弟感谢,奉上50分