美文网首页JavaJava 杂谈Spring-Boot
通过程序模拟登陆,并查询数据

通过程序模拟登陆,并查询数据

作者: bugWriter_y | 来源:发表于2019-07-09 19:49 被阅读14次

    你可以认为我是在写爬虫,但其实不是。。。

    程序模拟登陆最大的问题就是怎么保存登陆凭证。针对这个问题浏览器就做得很好,我们可以参考浏览器的做法。本质上,浏览器也是程序,只不过它做得够多。

    当用户第一次访问网站的时候,后台会生成一个session,同时将一个字符串JSESSIONID作为响应头返回给前端。浏览器这个时候会把这个字符串JSESSIONID存储起来,然后之后的每一次请求都会在请求头中带上这个字符串JSESSIONID。这样后台就可以根据这个字符串找到之前的那个session了,不会再创建一个新的session。至于用户有没有登陆只要判断session中有没有用户信息就可以了。所以这就是为什么无状态的http请求能保留登陆状态的根本原因。

    那我们用程序模拟登陆呢?如果你不做保存JSESSIONID这个操作,程序执行的每一次请求都会后端都会生成一个新的session,所以即使你登陆成功了也没有用。这样一分析,我们要做的就很简单了。

    1. 发送登陆请求,截取"Set-Cookie"响应头

    2. 发送之后的请求前先添加"Cookie"请求头

    相关文章

      网友评论

        本文标题:通过程序模拟登陆,并查询数据

        本文链接:https://www.haomeiwen.com/subject/slifkctx.html