记录一下今天帮群友解决的一个问题
今天在接口自动化的群里有个好友问了一个问题,其实就是关于token的问题
1.首先是一个登陆接口,该接口是第一个接口所以不需要header,但是用脚本写的时还是要传一个header进去,所以我就穿了一个浏览器默认的header解决了问题,其次对于form-data的入参类型要以data=的形式去传
2.当第一个问题解决以后他又来问我,说用登录返回的token去请求查询接口的时为什么有报错了,报错:token错误
我当时就郁闷了,打印出来看发现token明明是正确的啊,为什么服务器返回token错误呢?
我就想到了,可能是seesion的问题,可能是由于登录接口再另一个py文件中,调用请求查询接口时就是另外一个session了,
所以就来修改了一下脚本,将登陆和查询写在一个py文件中,用一个seesion去管理,代码如下:
#coding:utf-8
import requests
s = requests.session()
def chaxun():
u'查询接口'
url = 'http://183.59.xxx.xx:8080/restful/api/authentication'
#登录的入参
in_data = {
'username': "sendi",
'password': "2MDL010618",
'appid':"HDC2054490406A"
}
#请求头部
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
#发送请求
r = s.post(url,headers = header,data = in_data)
#获取token
t = r.json()['token']
print('登录返回的token是:%s' % t)
#'信息查询接口'
url_2 = 'http://183.59.xxx.xx:8080/restful/api/custinfo'
#登录的入参
in_data_2 = {
'customer':'佛山威立雅垃圾填埋处理有限公司',
'elecode':'IPCYW2267381990',
'elename':'IPCYW2267381990',
'NEName':'高明杨梅杨梅二楼综合机房01/S-T64G-1',
'portName':'gei_4/8',
'disabled':0,
'is_vip':0,
'page':1,
'pagesize':10,
'token':t
}
#请求头部
r = s.post(url_2,headers = header,data = in_data_2)
print(r.json())
if __name__=='__main__':
chaxun()
打印一下:
查询成功,问题解决!。。。。哈哈!
以此记录一下!