我正在尝试使用cookieawareclient登录到网站(代码在这里: C#网络客户登录网站)。当我使用网络浏览器登录到网站时,我会得到大约10个cookie。如果我禁用JavaScript并尝试登录,我将获得5(Activetab,ID,MCIM,PhpsessID,用户名)。但是,当我尝试使用cookieawareclient登录时,唯一保存的cookie就是phpsessid。

其他饼干没有保存的原因是什么?我知道网络电视机不会执行JavaScript,但是当禁用JavaScript时生成的其他3个cookie也没有保留。

有帮助吗?

解决方案

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

假设您首先清除了cookie,并且在无标记登录后仍然获得了5个新的cookie,那么通过查看缺少的cookie名称,我猜想您的cookieaeaeaeawareclient实际上并未成功地登录用户。缺少“用户名” cookie是我期望的,如果登录未成功。当您查看登录请求返回的HTML时,看起来像是成功的登录名吗?还是返回某种错误?

如果返回的HTML是成功的登录,那么我要考虑的下一个可能的罪魁祸首将是浏览器执行的其他请求,但您的代码未执行。例如,登录页面可能具有元刷新,该元重新定向到另一个页面(设置cookie)。或登录页面可能包含一个 IFRAME, IMG, SCRIPT, 等等。这又设置了cookie。要诊断这一点,请使用提琴手,firebug或其他类似工具,以查看浏览器作为登录过程的一部分正在执行哪些特定的HTTP请求。确保登录页面的帖子正在执行所有cookie设置,如果没有,则需要在初始登录后向代码添加其他请求。

如果事实证明只有一个HTTP请求设置cookie,那么问题是将您的代码发送(或不发送)到服务器的HTTP标头或发布数据。浏览器可能正在发送不同的标题或邮政数据。诊断此功能还需要Firebug,Fiddler或类似工具,以比较浏览器发送的HTTP标头和发布数据,而不是您的代码发送的内容。

如果这些建议都不起作用,请发表评论,我们可以迭代。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top