关于NMHTTP及ICS中Cookie的问题(100分)

  • 主题发起人 主题发起人 pxd
  • 开始时间 开始时间
P

pxd

Unregistered / Unconfirmed
GUEST, unregistred user!
与M$的Inet控件不同的是,Delphi的NMHTTP控件及ICS包里的HttpCli控件并不会
自动设置从Web服务器返回的Cookie,导致程序无法继续。

哪位兄弟来介绍一下NMHTTP或ICS里怎对返回的Cookie进行设置,或有现成的函数?
NMHTTP在发包时还有个编码错误的问题,怎解决?

另外,还想问一下:服务器程序怎样写可以在客户端硬盘的Cookies里留下记录而
非只留在IE的内存里?两种Cookie有何区别?(这个问题另算100分吧)。
 
大家帮帮忙,随便说两句也好。
 
ICS的 THttpCli 的 OnCookie 事件,接收到传来的 cookie 为 data
你将它保存,下次发送的时候, HttpCli.Cookie := 你要发的cookie
就可以了。

TNMHTTP, CookieIn是服务器传来的,把它保存,下次发的时候放在
NMHTTP.HeaderInfo.Cookie 发出去。

TNMHTTP.Post 的问题,
1、新的nm控件解决了这个问题
2、旧的控件(delphi5带来的),可以用16进制编辑器,打开lib/nmhttp.dcu
查找: 74 62 8b 4d fc b2 01 ,将第1个字节 74 改为 eb
(重新编译好象dephi哪里缓存了,还是用旧的dcu连接,不过我重起了delphi、又
折腾了一下,delphi终于用我改的dcu来连接exe了。经过试验,没有编码的问题
了)

 
NMxxx太破喽
而且没有源码
 
非常感谢Pipi,Nmhttp的编码问题已解决。

HttpCli由于有OnCookie事件,因此可以把Cookie一个个给记下来。
但HttpCli碰到Location Change时,如Asp中的Redirect方法,它并不自动去Get新的
Location,也不会触发它的OnLocationChange事件,令人甚是头痛。

Nmhttp无类似于HttpCli的OnCookie事件,等到OnSuccess事件再去读CookieIn时,已是最
后的一个Cookie了。
 
提前一点...
 
我的ics能自动redirect,也能触发OnLocationChange,
所以是不是看看去下载最新的ics?
http://www.rtfm.be/fpiette/indexuk.htm

不过ics和nmhttp都有个问题,如果我有 /test/test.asp 和 /test/test1.asp
两个文件,test.asp 中 response.redirect "test1.asp" 在ie中是能正常
redir的,但是在ics和nmhttp中都不能正常定位。
(ics把它理解为 /test1.asp , nmhttp则出错)

而如果用 response.redirect "/test/test1.asp" 或者
response.redirect "http://server/test/test1.asp"
则都可以正常处理。

另外你在 NMHTTP.OnReDirect 事件看看能不能读cookie
 
今天去当了最新的ics 2000.11月的beta版,OnLocationChange事件能触发了,但此时
httpcli.URL属性还是原来的URL,httpcli又自动发出上一次的Post包。

Httpcli我还有两个不大明了事件:OnStateChange、OnTrace。
这两个事件里都没提供参数,不知其何时会触发及有何用途。

NMhttp的CookieIn里只保留有最后一个Cookie,适用于Asp里只用Session的网站,因为
此时客户端就只须记录一个Asp SessionID。

非常感谢Pipi,希望大家能多多关心,事后我会再追加一百分。
 
大家关注一下。。。
 
提前一点点...
 
好了,问题就先讨论到这吧,下次来就给分。
 
请Pipi关注另一个100分:
<a href="http://www.delphibbs.com/delphibbs/DispQ.asp?LID=416576">http://www.delphibbs.com/delphibbs/DispQ.asp?LID=416576</a>
 
多人接受答案了。
 
后退
顶部