最近想通过python的get post请求来走一遍自己web的接口 ,所以写了一个简单的工具类。
1、创建文件 http_utils.py
import requests
import json
import urllib
# 用于header中带有access_token的情况
# get请求
def get(url, token=None, headers={}, params_obj={}):
if token is not None:
headers['Authorization'] = 'Bearer ' + token
params = urllib.parse.urlencode(params_obj).encode('utf-8')
response = requests.get(url + "?" + str(params, 'utf-8'), headers=headers)
return to_response(response)
# post请求 入参为application/json这种情况
def post(url, token=None,
headers={'Content-type': 'application/json;charset=UTF-8', 'Accept': 'application/json, text/plain'},
params={}):
if token is not None:
headers['Authorization'] = 'Bearer ' + token
response = requests.post(url, data=json.dumps(params),
headers=headers)
return to_response(response)
# 将get post请求的结果(byte[])转成对象
def to_response(response):
# 得到的是byte[]
byte_content = response.content
# 转成字符串
content = str(byte_content, 'utf-8')
# 转成对象
return json.loads(content)
2、创建test.py(替换掉下面的get_url,post_url,params)
# 用pycharm的小伙伴如果这行出现了红色报警 可以不管或者右键将这个包变成python的包
from http_utils import get, post
if __name__ == '__main__':
params = {'username': 'admin', 'password': '123456', 'clientType': 'WEB'}
post_url='http://www.xxx.com/login'
result = post(url=post_url, params=params)
access_token = result['access_token']
get_url="http://www.xxx.com/list"
result = get(url=get_url, token=access_token)
print(result)