python外部接口图解_python接口自动化(二十)--token登录(详解)

本文转载自: https://www.cnblogs.com/du-hong/p/10735012.html

简介

为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录。token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的,只

是换个单词而已;另外一种是在 url 请求参数里,这种更直观。

登录返回token

1、如下图的这个登录接口,就是没有 cookies的登录接口。

2、但是这个登录接口,登录成功后有返回token,如下图

请求头带token

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

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

token关联

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

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

参考代码

1 # coding:utf-8

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

12 }13 body = {"key1": "value1",14 "key2": "value2"} # 这里账号密码就是抓包的数据15 s =requests.session()16 login_url = "http://xxx.login"# 自己找带token网址17 login_ret = s.post(login_url, headers=header, data=body)18 # 这里token在返回的json里,可以直接提取19 token = login_ret.json()["token"]20 # 这是登录后发的一个post请求21 post_url = "http://xxx"

22 # 添加token到请求头23 header["token"] =token24 # 如果这个post请求的头部其它参数变了,也可以直接更新25 header["Content-Length"]="9"

26 body1 ={27 "key": "value"

28 }29 post_ret = s.post(post_url, headers=header, data=body1)30 print post_ret.content

小结

Token的意义及用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值