python接口自动化10-token登录

前言

有些登录不是用cookie来验证的,是用token参数来判断是否登录。

token传参有两种一种是放在请求头里,本质上是跟cookie是一样的,只是换个单词而已;另外一种是在url请求参数里,这种更直观。

 

一、登录返回token

1.如下图的这个登录,无cookies

2.但是登录成功后有返回token

 

二、请求头带token

1.登录成功后继续操作其它页面,发现post请求的请求头,都会带token参数

2.这种请求其实比cookie更简单,直接把登录后的token放到头部就行

 

三、token关联

1.用脚本实现登录,获取token参数,获取后传参到请求头就可以了

2.如果登录有验证码,前面的脚本登录步骤就省略了,自己手动登录后获取token

# coding:utf-8
import requests

header = {   # 登录抓包获取的头部
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
        "Accept": "*/*",
        "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
        "Accept-Encoding": "gzip, deflate",
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "X-Requested-With": "XMLHttpRequest",
        "Content-Length": "423",
        "Connection": "keep-alive"
        }

body = {"key1": "value1",
        "key2": "value2"}  # 这里账号密码就是抓包的数据

s = requests.session()
login_url = "http://xxx.login"   # 自己找带token网址
login_ret = s.post(login_url, headers=header, data=body)
# 这里token在返回的json里,可以直接提取
token = login_ret.json()["token"]

# 这是登录后发的一个post请求
post_url = "http://xxx"
# 添加token到请求头
header["token"] = token
# 如果这个post请求的头部其它参数变了,也可以直接更新
header["Content-Length"]="9"
body1 = {
         "key": "value"
         }
post_ret = s.post(post_url, headers=header, data=body1)
print post_ret.content

 对python接口自动化有兴趣的,可以加python接口自动化QQ群:226296743

也可以关注下我的个人公众号:

 

---------------------------------python接口自动化已出书-------------------------

全书购买地址 https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695

时间: 2024-10-28 14:57:08

python接口自动化10-token登录的相关文章

python接口自动化6-重定向(Location)

前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不想直接拒绝于是设置呼叫转移给闺蜜C了,最终屌丝男A和女神闺蜜C表白成功了,这种场景其实就是重定向了.   一.重定向 1. (Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置,从地址A跳转到地址B了. 2.重定向状态码: --301 redirect: 301 代表永久性转移(Permanently Moved) --302 redirect: 302 代表暂时性转移(Temporarily

python接口自动化5-Json数据处理

前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的参数就行,这时候就需要json来解析返回的数据了. 一.json模块简介 1.Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式,常用于http请求中 2.可以用help(json),查看对应的源码注释内容 Encoding basic P

python接口自动化7-参数关联

前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了,换个网站,或者用cookie登录吧)   一.删除草稿箱 1.我们前面讲过登录后保存草稿箱,那可以继续接着操作:删除刚才保存的草稿 2.用fiddler抓包,抓到删除帖子的请求,从抓包结果可以看出,传的json参数是postId 3.这个postId哪里来的呢?可以看上个请求url地址 4.也就是

python接口自动化3-自动发帖(session)

前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢?  (敲黑板!!!由于博客园最近登录机制变了,登录全部走cookie登录) 一.session简介 1.查看帮助文档,贴了一部分,后面省略了 >>import requests>>help(requests.session()) class Session(SessionRedirectMixin) |  A Requests session. |   |  Provid

python接口自动化9-https请求(SSL)

前言 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会报:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 小编环境: python:2.7.12 requests:2.13.0 fiddler:v4.6.2.0   一.SSL问题 1.不启用fiddler,直接发h

python接口自动化1-发送get请求

前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了.   一.环境安装 1.用pip安装requests模块 >>pip install requests   二.get请求 1.导入requests后,用get方法就能直接访问url地址,如:http://www.cnblogs.com/yoyoketang/,看起来是不是很酷 2.这里的r也就是response,请求后的返回值,可以调用response里的status_cod

python接口自动化20-requests获取响应时间(elapsed)与超时(timeout)

前言 requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的. 如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间 关于requests请求的响应时间,官网上没太多介绍,并且我百度搜了下,看很多资料写的是r.elapsed.microseconds获取的,然而都是错的!!! elapsed官方文档 elapsed方法的官方文档地址:http://cn.python-requests.org/zh_CN/latest/api.ht

python+requests接口自动化完整项目设计源码

 前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违法职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目框架,只能帮你们到这了.   一.项目结构 1.新建一个工程(一定要创建工程),工程名称自己定义,如:yoyo_jiekou 2.在工程的跟目录新建一个脚本:run_main.py,用来执行全部用例 3.在工程下创建以下几个pakage包: --case:这个包放test开头的测试用例,也可以放一

python接口自动化测试(八)-unittest-生成测试报告

用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: 这个模块不能通过pip安装,只能下载安装,下载地址如下: python2.x版本:http://tungwaiyip.info/software/HTMLTestRunner.html python3.x版本:http://hzqldjb.blog.51cto.com/9587820/1590802