首先,一个明显的问题:在您关闭浏览器中的脚本并尝试登录之前,您是否先清除了 cookie?如果没有,请清除 cookie 并重试。
假设您首先清除了 cookie,并且在无脚本登录后仍然获得 5 个新 cookie,然后通过查看丢失的 cookie 名称,我猜您的 CookieAwareClient 实际上并没有成功登录用户。如果登录不成功,我会期望缺少“用户名”cookie。当您查看登录请求返回的 HTML 时,是否看起来像是成功登录?还是返回某种错误?
如果返回的 HTML 是成功登录,那么我要查看的下一个可能的罪魁祸首是浏览器正在执行但您的代码未执行的其他请求。例如,登录页面可能有一个 META REFRESH 重定向到另一个页面(它设置了一个 cookie)。或者登录页面可能包含一个IFRAME
、IMG
、SCRIPT
等,而这些又设置了一个 cookie。要对此进行诊断,请使用 Fiddler、Firebug 或其他类似工具查看您的浏览器正在执行哪些特定 HTTP 请求作为登录过程的一部分。确保登录页面的 POST 正在执行所有 cookie 设置,如果没有,那么您需要在初始登录后向您的代码添加额外的请求。
如果事实证明只有一个 HTTP 请求设置了 cookie,那么问题很可能是您的代码正在发送(或不发送)到服务器的 HTTP 标头或 POST 数据。浏览器可能会发送不同的标头或 POST 数据。诊断此问题还需要 Firebug、Fiddler 或类似工具来比较浏览器发送的 HTTP 标头和 POST 数据与您的代码发送的数据。
如果这些建议都不起作用,请发表评论,我们可以进行迭代。