IdHTTP1.Request.CustomHeaders.Values['Cookie']:=s;
IdHTTP1.Request.RawHeaders.Values['Cookie']:=s;这两种写法一样吗?
CustomHeaders跟RawHeaders都代表什么啊?
大家查询属性的时候都怎么查?在DELPHI里选中某个属性按F1吗?还是有别的方法?这样取COOKIE放到变量里就可以吗?
for i := 0 to HTTP.CookieManager.CookieCollection.Count - 1 do
s := s + HTTP.CookieManager.CookieCollection.Items[i].CookieText;还有人说用idhttp.response.rawheaders.text;
然后自己截取COOKIE 这2中获取COOKIE方法有什么区别? 如果自己截取COOKIE的话要怎么截取?就是要截取成什么格式吗?
还是截取成抓包一样就可以了?

解决方案 »

  1.   

    D7 以上版本的IdHTTP 控件自己可以保存cookie
      

  2.   

    可能用API写cookie:
    function SetCookie(sUrl,sName,sData:string):Boolean;   //写本地cookie
    const
      CsDateFormat = '"%s", dd "%s" yyyy hh:nn:ss';
    var
      Expires: TDateTime;
      sTmp, sCookie: string;
      errorcode:Cardinal;
    begin
      Result:=False;
      Expires := Now() + 1;
      sTmp := Format(FormatDateTime(CsDateFormat, Expires) + ' GMT',
            [DayOfWeekStr(Expires), MonthStr(Expires)]);
      sCookie := sName+'='+ sData+ '; Expires=' + sTmp;
      if InternetSetCookie(PChar(sUrl), nil, PChar(sCookie)) then
      begin
        Result:=True;
      end
      else
      begin
        errorcode:= GetLastError;
      end;
    end;
    相应的取cookie的API为InternetGetCookie,楼主自己可以弄
      

  3.   

    可能用API写cookie:
    function SetCookie(sUrl,sName,sData:string):Boolean;   //写本地cookie
    const
      CsDateFormat = '"%s", dd "%s" yyyy hh:nn:ss';
    var
      Expires: TDateTime;
      sTmp, sCookie: string;
      errorcode:Cardinal;
    begin
      Result:=False;
      Expires := Now() + 1;
      sTmp := Format(FormatDateTime(CsDateFormat, Expires) + ' GMT',
            [DayOfWeekStr(Expires), MonthStr(Expires)]);
      sCookie := sName+'='+ sData+ '; Expires=' + sTmp;
      if InternetSetCookie(PChar(sUrl), nil, PChar(sCookie)) then
      begin
        Result:=True;
      end
      else
      begin
        errorcode:= GetLastError;
      end;
    end;
    相应的取cookie的API为InternetGetCookie,楼主自己可以弄
      

  4.   

    CustomHeaders.Values['Cookie']:=s;
    //这种是自定义设置HTTP头RawHeaders.Values['Cookie']:=s;
    //这种是原始的HTTP头