idhttp AllowCookies设为TRUE,那是不是每次访问网站后新加的COOKIE都会自动添加进去?如果访问两个网站,比如,X.A.COM, Y.B.COM,那COOKIE是怎么弄的?还有想改COOKIE怎么办?在Request.CustomHeaders.Text这里改不起作用,除非把AllowCookies设为FALSE才起作用

解决方案 »

  1.   

    cookie是与网站域名绑定的,A.COM的cookie与B.COM不能互用。
      

  2.   

    使用IDHTTP 只能自己处理COOKIE 如果COOKIE信息太多 也挺麻烦的
    IDHTTP1.Request.CustomHeaders.Text := 'Cookie: '+ Memo_Cookie.Lines.Text;
    设置为TRUE应该也可以
      

  3.   

    使用INDY10版本的话,COOKIE不用自己写代码加入到HTTP头。
      

  4.   

    我知道不能互用,就是IDHTTP能区分开吗?因为发送一个网址返回一个302跳转到另一个网址了,然后又跳转回来,要跳转10多次
      

  5.   

    我试过了不行的,设为TRUE就不能再用这个了
      

  6.   

    必须要自己改一下啊,用拦截的工具发现不知道哪一步从哪来的一个COOKIE,只好自己加进去了
      

  7.   

    1.把idhttp的重定向打开;
    2.以Get为例,idhttp伪造session                 IdHttp1.Get(mURL1); 
                    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); 
      

  8.   

    以上代码是从我以前回的csdn的帖子里拖过来的,字符串的后一个引号前面的那个空格是csdn给加上的,代码里面去掉之。
      

  9.   

    码...一直对idhttp的cookie伤脑筋