python解决token传值问题
准备一个使用到token接口
https://xxx.com
准备目录/软件包/.py文件
- api
- api_function.py
- script
- test01_function.py
- config.py
config.py
HOST = "https://xxx.com"
TOKEN = None
api_function.py
from config import HOST
class ApiFunction:
def __init__(self, session):
self.session = session
# 登录
self.__url_login = HOST + "访问方向"
# 消息通知
self.__url_message = HOST + "访问方向"
# 登录
def api_login(self, password, mobile):
data = {
"password": password,
"mobile": mobile
}
result = self.session.post(url=self.__url_login, data=data)
# 检查响应
if result.status_code == 200:
data = result.json()
if "data" in data:
token = data["data"]["token"]
print("api提取到的 token 值:", token)
# return token # 返回提取到的 token 值
return token
else:
print("api未找到 token 值")
else:
print("api登录请求失败,状态码:", result.status_code)
return None
# 获取消息通知
def api_message(self, token):
if token is None:
print("未找到有效的 token 请先执行登录方法")
return
headers = {"Authorization": "Bearer " + token}
result = self.session.get(url=self.__url_message, headers=headers)
return result
test01_function.py
import requests
import config
from api.api_function import ApiFunction
class TestFunction:
def setup(self):
self.session = requests.session()
self.api = ApiFunction(self.session)
def teardown(self):
self.session.close()
# 登录
def test01_login(self, password="123456789", mobile="13600000011"):
# 调用 api_login 方法获取 token 值
config.TOKEN = self.api.api_login(password, mobile)
# 检查 token 是否成功获取
if config.TOKEN is not None:
print("test成功获取到 token 值:", config.TOKEN)
else:
print("test获取 token 失败")
# 获取消息通知
def test02_message(self):
import config
if config.TOKEN is None:
print("test未找到有效的 token,请先执行登录方法")
result = self.api.api_message(config.TOKEN)
if result.status_code == 200:
print("test消息通知请求成功,状态码为:", result.status_code)
else:
print("test消息通知请求失败")