今天在做模拟网站数据提交操作时,遇到了同一个域下Cookie同名的问题:记录用户登陆状态的Cookie,name为ASPSESSIONIDASQRDCST;记录提交数据页面验证码的Cookie,name也为ASPSESSIONIDASQRDCST。对方网站上默认为记录用户登录状态和验证码的为同一个Cookie(名称相同、值相同)。而我要想模拟对方网站提交数据就也需要这样做。
刚开始做的比较简单:登陆是一个独立的Http请求,发送数据又是一个独立的Http请求。可当程序走下来发现,记录用户登录状态的Cookie值与记录验证码的Cookie位于同一个域名下,值并不相同。由于Cookie名字相同而且在同一个域下,两者总会产生覆盖现象:程序总会提示请先登录、验证码错误等提示信息。要想顺利的提交数据,就必须在程序中进行处理,使两者的Cookie值相同。
为此,我采用了一个比较笨的方法:在用户登陆之前先获取验证码信息,在Http请求里面添加记录验证码信息的Cookie。刚开始还有顾虑,害怕登陆执行过程中会把前面添加的Cookie给覆盖掉,再次提示验证码失败。最后程序走下来,发现自己添加的Cookie并未被覆盖掉,这样就顺利的实现了用户的登陆以及数据的提交操作。
时间: 2024-10-22 13:20:45