python-request用法之接口关联

这里介绍我在练习request用法时遇到的接口关联问题,指下面的接口会用到之前接口返回的某个值。例如一个平台的登陆接口会返回一个token,后面的每个接口的请求头都会带这个字段。

接口介绍:

登陆接口,如下图:

我需要提取这个authorization字段,在下一个接口调用时放到请求头中,如下图:

实现方法:

我把两个接口分开写的,这里看各自实际情况哈

OpenToken.py

import requests
import logging

def get_token():
logging.captureWarnings(True)
payload={'userName':'xxx',
'passWord':'xxx'
}
urls='xxxx'
r=requests.post(url=urls,data=payload,verify = False)
print("Status code:",r.status_code)
token=r.json()['result']['authorization']
print(token)
return token

get_token()

OpenMyList.py

import requests
import unittest
import logging
from Testtbuilding.OpenToken import get_token
class Mylist(unittest.TestCase):
def test_my_list(self):
logging.captureWarnings(True)
url='xxxx'
header={'authorization':get_token()}
list=requests.post(url,headers=header,timeout=5,verify = False)
# print(header)
print(list.json())
self.assertIs(list.json()['code'],1)
self.assertIs(list.status_code,200)
self.assertIs(len(list.json()['result']),6)

在第一个文件中我把authorization提取出来,因为第一个接口的返回格式authorization被包了两层,可以看上面接口截图中的内容,所以写成
token=r.json()['result']['authorization']这个格式,如果是在最外层就不需要前面的result那一层。
第二个文件中,把authorization放进header里,直接调用了第一个文件中的方法,header={'authorization':get_token()},注意在get_token方法里一定要有返回值,
要不然你拿到的就是None。

 

posted @ 2019-07-18 23:32  ls0202  阅读(2336)  评论(1编辑  收藏  举报