用IDHTTP读取带COOKIES的网页,COOKIES过期后就读不出,如何解决?
idhttp1.HandleRedirects := True;
idhttp1.AllowCookies := false;
str:=tstringlist.Create ;
str.LoadFromFile('c:\p1.txt');
idhttp1.Request.CustomHeaders.Text :=str.Strings[0];
s:='http://s.weibo.com/weibo/%25E5%25A4%25A9%25E5%25AE%2581&Refer=STopic_box';
memo1.Text:=DecodeUtf8Str(idhttp1.Get(s));这其中p1.txt中放了COOKIE,内容如下:
Cookie: UOR=,weibo.com,spr_wbbop_wb_dibutips_newbacc_p1001:1354785266911; ULV=1354836553281:200:3:3:5669801814508.431.1354836553234:1354775165890; myuid=2614819883; [email protected]; ALF=1355390175; SUS=SID-1654987587-1354836549-XD-8lz42-3d523d171dec0c5823e1bdf6cf0e2110; SUE=es%3Da4219d9f67297cfbdb1883c5ec9886b9%26ev%3Dv1%26es2%3D676a5006228fdf52a123ced0d3e7440f%26rs0%3DhSoehlMjOqdrucDUQMnkymel7qfu6etP8vJfpchF92udXHiezoo0x3SDrMoSt%252B8wxllqwBkbfwNMGD9FYplxvEzwa%252F%252FBJ078bdpYqLq2xrpbkfyZE9XRyofvmxY5oSCGQwsHk5rtvJZ88QsnupGYUP2Cbc0RP3pXFTuWjlb4j2U%253D%26rv%3D0; SUP=cv%3D1%26bt%3D1354836549%26et%3D1354922949%26d%3Dc909%26i%3D9cef%26us%3D1%26vf%3D0%26vt%3D0%26ac%3D0%26uid%3D1654987587%26user%3Dczfxb%2540126.com%26ag%3D4%26name%3Dczfxb%2540126.com%26nick%3D%25E5%25B0%258F%25E9%25B1%25BC123wer%26fmp%3D%26lcp%3D2012-07-26%252015%253A41%253A10; SSOLoginState=1354836549; v=5; USRHAWB=usrmdins312_146; v5reg=usrmdins1030; _s_tentry=-; Apache=5669801814508.431.1354836553234; SINAGLOBAL=5669801814508.431.1354836553234; [email protected]; USRHAWB=usrmdins21347; WBStore=758182110712600a|如果COOKIES有效,那么可以读出完整内容,如果COOKIES过期,那么就无法读出内容。请问如何修改以上COOKIES,保证COOKIES不过期?

解决方案 »

  1.   

    客户端的Cookie过期与否本来由浏览器控制,既然你是idhttp自然由你自己控制,在这个例子上不存在过期一说(你保存了cookie然后又拿出来用),
    我猜测你这个cookie串的内容包含了过期的信息,服务器通过cookie串的内容判断客户端传上来的cookie是不是一个有效的cookie。
      

  2.   

    那如何判断COOKIES有效与否?前几天有效,过几天就失效,我估计是过期的缘故,不知道改哪个参数。
      

  3.   

    那如何判断COOKIES有效与否?前几天有效,过几天就失效,我估计是过期的缘故,不知道改哪个参数。