第一次发帖。先谢谢各位。
我查资料的时候 听说 用indy10,idhttp就不管管cookie了。会想webbrowse一样自动保存。但是我测试的时候
发现不是这样的啊。我用idhttp post 能登录成功。但是 我接着用 idhttp get这个网站首页的时候。返回的
源码,并不是登录状态的东西。
我的代码如下:
    IdHTTP1.Request.Accept := '*/*';
     IdHTTP1.Request.Host := 'www.meilishuo.com';
    IdHTTP1.Request.Referer := 'http://www.meilishuo.com/logon';
    IdHTTP1.Request.Connection := 'Keep-Alive';
    IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoKeepOrigProtocol];
    IdHTTP1.ProtocolVersion := pv1_1;
    IdHTTP1.AllowCookies := True;
    Params1.Append('emailaddress=bucuodfsafsa');
    Params1.Append('password=870527');
    Params1.Append('savestate=true');
    Params1.Append('type=undefined');
    Params1.Append('follow=0');
    Params1.Append('wbid=0');
    Params1.Append('redirect=http%3A%2F%2Fwww.meilishuo.com%2Fwelcome');    url := 'http://www.meilishuo.com/users/ajax_logon?frm=undefined';
    IdHTTP1.HandleRedirects := true;  s := idhttp1.Post(url, Params1);
到这里 post结果 能成功登录。下面我接着写的 :  cookie := '';
  for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do  begin
    cookie := cookie + IdCookieManager1.CookieCollection.Items[i].CookieText;
    end;
    IdHTTP1.Request.RawHeaders.Add('cookie: ' + cookie);
//为idhttp cookie 赋值(我不知道是否需要这个步骤indy10);
s := IdHTTP1.Get('http://www.meilishuo.com/welcome');想通过get取源码。 发现返回的s  并不是登录后的东西。不明白为什么。呢网上也听说 要和 cookiemaneger一起用。我也测试过。始终。不行。谢谢各位大侠。
帮个忙。

解决方案 »

  1.   

    把cookie都放这里
    idhtp1.Request.CustomHeaders.Add('Cookie:' + mmo4.Text);
      

  2.   

    楼上的。谢谢 回复。您能说具体点吗?cookie := '';
      for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do begin
      cookie := cookie + IdCookieManager1.CookieCollection.Items[i].CookieText;
      end;
      IdHTTP1.Request.RawHeaders.Add('cookie: ' + cookie);
    这个 和您的那句话 意思是一样的吧?
      

  3.   

    我用那个customheaders的就可以。你试下吧
      

  4.   

    没indy10,indy9下是这样用的,你看下indy10可以不                idhttp1.Post(mURL1, Params1);
                    mStr   :=   IdHttp1.Response.CustomHeaders.Values[ 'Set-Cookie']; 
                    if   Pos( ';',mStr)> 0   then 
                                    Session_ID   :=   LeftBStr(mStr,Pos( ';',mStr)-1) 
                    else 
                                    Session_ID   :=   mStr;                 IdHttp1.Request.CustomHeaders.Add( 'Cookie:'   +   Session_ID); 
                    IdHttp1.Get(mURL2);
      

  5.   

    erhan  您的 那个  leftBstr 是不是要引用哪个单元啊
      

  6.   

    谁能给我个damo啊。实现:
    idhttp post 登录www.meilishuo.com。
    然后 用idhttp get 首页源码 的时候 能取到 自己的信息。current_user = {
    'id': 6948928,
    'nickname': 'yinhuai520',
    'avatar': 'http://imgtest.meiliworks.com/ap/c/a9/ab/118ec1970d941e7c3af61c504403_90_90.jpg'
    };
    即源码的 currentuser 有值。没在登录状态下 都为 0 。谢谢各位了。 100 RMB  奉上。
     万分感谢哈  100元。小弟没什么钱。意思一下
      

  7.   

    谢谢 你们哈 。我还是不行。引用 strunits也 引用不起。你们能帮我 弄个damo吗。谢谢了啊。100元 意思下。酬谢了。
      

  8.   

    mStr这个的值始终是 空呢。
      

  9.   

    您有QQ 吗。 我加您。我的QQ:2216185275
      

  10.   

    我这里测试是没有问题的了!就是用IdHttp1.Request.CustomHeaders.Add