并非所有使用cookiecontainer和webclient/httpwebrequest保存的Cookie

并非所有使用cookiecontainer和webclient/httpwebrequest保存的Cookie,httpwebrequest,webclient,httpwebresponse,session-cookies,cookiecontainer,Httpwebrequest,Webclient,Httpwebresponse,Session Cookies,Cookiecontainer,我正在尝试使用CookieAwareClient(此处代码:)登录到一个站点。当我使用我的网络浏览器登录到该网站时,我得到大约10个cookie。如果我禁用JavaScript并尝试登录,我会得到5(activeTab、id、mcim、PHPSESSID、用户名)。但是当我尝试使用CookieAwareClient登录时,唯一保存的cookie是PHPSESSID 其他Cookie无法保存的原因可能是什么?我知道WebClient不执行JavaScript,但禁用JavaScript时生成的其他

我正在尝试使用CookieAwareClient(此处代码:)登录到一个站点。当我使用我的网络浏览器登录到该网站时,我得到大约10个cookie。如果我禁用JavaScript并尝试登录,我会得到5(activeTab、id、mcim、PHPSESSID、用户名)。但是当我尝试使用CookieAwareClient登录时,唯一保存的cookie是PHPSESSID


其他Cookie无法保存的原因可能是什么?我知道WebClient不执行JavaScript,但禁用JavaScript时生成的其他3个cookie也没有被保留

首先,一个显而易见的问题:在您关闭浏览器中的脚本并尝试登录之前,您是否先清除了cookie?如果没有,请清除cookies并重试

假设您先清除了cookie,但在无脚本登录后仍然获得了5个新cookie,那么通过查看丢失的cookie名称,我猜您的CookieAwareClient实际上没有成功登录用户。如果登录不成功,我希望缺少“用户名”cookie。当您查看登录请求返回的HTML时,它看起来像是成功登录吗?还是它返回了某种错误

如果返回的HTML是一个成功的登录,那么我要看的下一个可能的罪魁祸首是浏览器执行的附加请求,而不是代码执行的请求。例如,登录页面可能有一个元刷新,它重定向到另一个页面(设置cookie)。或者,登录页面可以包含
IFRAME
IMG
脚本
,等等,它们反过来设置cookie。要诊断此问题,请使用Fiddler、Firebug或其他类似工具查看浏览器在登录过程中执行的特定HTTP请求。确保登录页面的帖子执行了所有cookie设置,如果没有,则需要在初次登录后向代码中添加其他请求

如果事实证明只有一个HTTP请求设置cookies,那么问题很可能是您的代码正在发送(或未发送)到服务器的HTTP头或POST数据。浏览器可能正在发送不同的标题或帖子数据。诊断此问题还需要Firebug、Fiddler或类似工具来比较浏览器发送的HTTP头和POST数据与代码发送的内容

如果这些建议都不起作用,发表评论,我们可以重复