BCB TIdHTTP COOKIE问题

a82344626 2010-09-07 07:23:46
代码如下

TIdHTTP *nhttp = new TIdHTTP(0);
TIdCookieManager * My_Cookie = new TIdCookieManager(0);
nhttp->AllowCookies = true;
nhttp->CookieManager = My_Cookie;
nhttp->Request->AcceptLanguage="zh-CN";
nhttp->Request->Connection="Keep-Alive";
nhttp-> HandleRedirects=true;

TMemoryStream *tmp = new TMemoryStream();
AnsiString pic_url = "http://captcha.qq.com/getimage?aid=15000101";
nhttp->Get(pic_url, tmp);
nhttp->Get(pic_url, tmp);

为什么没有COOKIE?
明明有设置过了!
会不会是BCB 2010的BUG?
那位大哥知道说下
谢谢了
...全文
1806 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
科多兽 2013-01-26
  • 打赏
  • 举报
回复
妖哥,你的代码在bcb2007里,执行会出现出错,出现Range check Error异常。
GoAwayZ 2010-10-26
  • 打赏
  • 举报
回复
看不懂……给偶点分嘛
dhua_fj 2010-10-25
  • 打赏
  • 举报
回复
文件的DoAdd函数有个过滤Cookie的函数,注释掉就可以了
然后卸载、重新编译Indy控件

procedure TIdCookieManager.DoAdd(ACookie: TIdCookieRFC2109; ACookieText: String; AURL: TIdURI);
...
//if not IsRejectedCookie(ACookie, AURL) then
a82344626 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 dhua_fj 的回复:]
引用 29 楼 a82344626 的回复:
找是找不不过是Delphi的C++的没有!

控件源文件都是pas的,就是IdCookieManager.pas
修改它就好了
[/Quote]
会改就好了!
早就看过了!
是Delphi的代码不好改!
再说很难看的明!
GoAwayZ 2010-10-19
  • 打赏
  • 举报
回复
大仙……一群大仙
dhua_fj 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 a82344626 的回复:]
找是找不不过是Delphi的C++的没有!
[/Quote]
控件源文件都是pas的,就是IdCookieManager.pas
修改它就好了
a82344626 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 pp616 的回复:]
更具http协议自己记录cookie就是了。干嘛非要用控件啊。自己维护cookie又不是什么难事。
[/Quote]
如登陆成功后URL转向另一个页面就得不到
nhttp->Response->RawHeaders->Text;
nhttp->Response->CustomHeaders->Text;
这数据了!
就是登陆成功后网页自动转向别的URL就得不到了!

如像CSDN他如果是马上转页面页面上的COOKIE根本都自己得不到!
pp616 2010-10-18
  • 打赏
  • 举报
回复
更具http协议自己记录cookie就是了。干嘛非要用控件啊。自己维护cookie又不是什么难事。
a82344626 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 dhua_fj 的回复:]
就是要修改IdCookieManager.pas,然后重新编译Indy控件
如果你连文件都找不到,那.....
[/Quote]
找是找不不过是Delphi的C++的没有!
dhua_fj 2010-10-12
  • 打赏
  • 举报
回复
就是要修改IdCookieManager.pas,然后重新编译Indy控件
如果你连文件都找不到,那.....
a82344626 2010-10-10
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 dhua_fj 的回复:]
IdCookieManager里DoAdd事件会过滤他认为domain不合规范的Cookie,
修改源文件,去掉过滤判断,重新编译就好了
如果需要,可以自己OnNewCookie进行处理
[/Quote]
....
大哥说下呀!
dhua_fj 2010-09-26
  • 打赏
  • 举报
回复
IdCookieManager里DoAdd事件会过滤他认为domain不合规范的Cookie,
修改源文件,去掉过滤判断,重新编译就好了
如果需要,可以自己OnNewCookie进行处理
a82344626 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 dhua_fj 的回复:]
IdCookieManager里DoAdd事件会过滤他认为domain不合规范的Cookie,
修改源文件,去掉过滤判断,重新编译就好了
如果需要,可以自己OnNewCookie进行处理
[/Quote]
只看到HPP
a82344626 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 dhua_fj 的回复:]
IdCookieManager里DoAdd事件会过滤他认为domain不合规范的Cookie,
修改源文件,去掉过滤判断,重新编译就好了
如果需要,可以自己OnNewCookie进行处理
[/Quote]
大哥原文件在那?
a82344626 2010-09-24
  • 打赏
  • 举报
回复
....
没人来!!!!
netying 2010-09-13
  • 打赏
  • 举报
回复
关注此问题
a82344626 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bigfog 的回复:]
TIdHTTP 好象就没跟上bcb的 unionstring的步伐
[/Quote]
不是没跟上
是BCB的BUG
我刚刚更新了Indy为最新的indy10.5.8
一样没用
说明了是他的BUG

BUG还真多
我搞二个就出现二个
还有人买他正版的?
a82344626 2010-09-11
  • 打赏
  • 举报
回复
不是这个问题
更新了Indy也不能自动管理
说明还是C++ Builder的BUG
ccrun.com 2010-09-11
  • 打赏
  • 举报
回复
可以研究一下Indy 10.5.7中Idhttp单元的源码,和10.5.5的对比一下。
a82344626 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ccrun 的回复:]
引用 15 楼 a82344626 的回复:
装了
C++ Builder XE就没这个问题
好像是Indy的问题
用了Indy10.5.7
就没这问题
C++ Builder 2010
怎么更新Indy


XE中Indy的版本是多少?
[/Quote]
Indy10.5.7
2010 的是10.5.5
加载更多回复(16)

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧