这个问题困扰了我好几天了一直找不到原因。达人帮帮忙啊。。我再详细解释一下问题: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-_-!!)希望达人能救救我分不多。先谢谢啦第一次用idhttp控件就遇到这问题了晕死

解决方案 »

  1.   

    LOGIN.ASP 的時候應該會提交一些信息的吧,這個時候那應該先用 POST  去提交,然後再用GET去返回提交請求的返回數據。
    要考慮下 Cookies  的問題。
      

  2.   


    idhttp还要自己去get的吗?
    post的时候是会提交信息,但是提交完了,服务器不是会自动跳转到其它页面?这时候idhttp会自动再次post那张页面,难道还要自己get一下?奇怪,我用webbrowser都不会这样用winhttp组件也不会...汗...希望再次给我一点详细的介绍及说明谢谢..starluck...
      

  3.   


    设了。不设的话就是302错误了。。现在主要是为什么idhttp会把需要get的内容变成post的方式进行提交?例子:
    //就这么一句
    idhttp.post('http://www.123.com/login.asp',postParam);我用分析工具截包后发现有两条post数据....1、post  http://www.123.com/login.asp
    2、post  http://www.123.com/index.asp正确的话第2条应该是   get  http://www.123.com/index.asp
      

  4.   

    應該不是這個123這個站吧,是不是在LOGIN.asp的時候,本身又做了什麼提交呢?? 看了人家網頁的代碼沒有?
      

  5.   


    有啊,代码是自己写的login.asp里就是如果post过来的数据正确,就跳转到index.asp页是不是我的idhttp控件版本问题?我用的是delphi里自带的idhttp...
      

  6.   

    packages里写着  dclindy70
      

  7.   

    忘了说了,我用的是delphi 7
      

  8.   

    那就是9的。應該沒有問題的啊。我用過啊。你手工提交,截下包看下。是不是也有兩個POST。
      

  9.   


    用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.aspidhttp设置的属性有:     
      idHttp.HandleRedirects:=true;
      idHttp.HTTPOptions:=idHttp.HTTPOptions+[hoKeepOrigProtocol];//关键这行
      idHttp.ProtocolVersion:=pv1_1;
      idHttp.Request.ContentType:='application/x-www-form-urlencoded';
      idHttp.Request.Referer:='http://www.95898.org';
      

  10.   

    我再补充一下,我的系统是win2003 sp2 r2
      

  11.   

    IdHttp.Post(URL,ReqStream,ResStream);
    Reqstream 提交     ResStream 返回
    不是很懂,权当参考
      

  12.   


    谢谢关注,不过不是提交不了,而是提交后返回的链接idhttp依然用post来提交了。。正确的应该是get...
      

  13.   

    测试发现设置 IdHTTP1.RedirectMaximum:=0 这样就不会跳转。不过,IdHTTP1.RedirectMaximum的值默认是15  每跳转一次,会触发onRedirect事件一次。。但是跳转的method却一直是POST(正确的应该是get
      

  14.   

    有什么方法可以让自动跳转的方法变成get?
      

  15.   

    這樣試試,把  HandleRedirects := false;   然後用 try Except end ;  處理下異常,你再補獲下,看可不可翠。
      

  16.   

    测试url:http://www.95898.org测试帐号:test/test11post的url:http://www.95898.org/checkLogin.asp?action=login我用的截包软件:HttpAnalyzer代码:procedure TForm1.Button2Click(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;
      

  17.   

     行正常啊 POST 登陸後,再POST一次 dl.asp 可翠的啊。
      

  18.   

    这个是可以,我知道,但是有些网站就不行了而且跟ie登录时不一样。。你试着用ie登录一下...那个dl.asp的方式是get
    但是用idhttp的话就还是post了。。虽然post没出错,但是用post就是不正常的你觉得呢?
      

  19.   

    我还是希望有人能解释一下为什么会这样?POST好几下...