我有个客户端,我想在第一次登陆的时候建立个cookies,第二次登陆的时候可以直接读取cookies,因为这个客户端和一个网站是相关的,所以我想在登陆完客户端之后建立cookies,这样如果不用客户端打开浏览器也可以直接浏览不需要登陆。
网站的登陆页面有写cookies的语句,也正常。但是从客户端登陆,用idhttp传递值给登陆页面,然后返回成功值,这样之后发现cookies没有被建立。不知道该怎么办,请指点一下,新手,呵呵
,分不够可以加分啊

解决方案 »

  1.   

    取得Cookie后再用它得到你的网页内容,程序大至下:
    var
       Cookie,CookieList:string;
       i:integer;
    ....
    //先登录
    Cookie:='';
    CookieList:='';
    for i:=0 to idhttp1.Response.ExtraHeaders.Count-1 do
        if (UpperCase(copy(IdHTTP1.Response.ExtraHeaders.Strings[i],1,10)) ='SET-COOKIE') then
        begin
               Cookie :=Trim(copy(IdHTTP1.Response.ExtraHeaders.Strings[i],12,1000));
               Cookie :=copy(Cookie,1,Pos(Cookie,';'));
               CookieList:=CookieList+Cookie;
        end;
     IdHTTP1.Request.ExtraHeaders.Add("Cookie: "+CookieList);
    //再用IdHTTP1.Get新的网页
      

  2.   

    for i:=0 to idhttp1.Response.ExtraHeaders.Count-1 do
    这一杭提示错误,
      

  3.   

    提示Undeclared identifier: 'ExtraHeaders'
      

  4.   

    你用的是什么版本的indy?
    我用D6自带的8.0.25测试通过.只是
    IdHTTP1.Request.ExtraHeaders.Add("Cookie: "+CookieList);
    中的"要改'
      

  5.   

    我用的d7,好像提示没有定义extraheaders
      

  6.   

    手头没有D7,没法试,看看有没有类似属性(查Request所有TStringList类型属性)