48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
|
|
import requests
|
|||
|
|
|
|||
|
|
from api.http import Headers as BaseHeaders
|
|||
|
|
from logger import LOGGER
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Headers(BaseHeaders):
|
|||
|
|
def __init__(self):
|
|||
|
|
"""
|
|||
|
|
初始化Headers类
|
|||
|
|
- `self.get_headers_url`: 获取token的URL地址,根据实际环境修改。
|
|||
|
|
- `self.timeout`: 请求超时时间,设置为5秒。
|
|||
|
|
- `interval`: 定时刷新headers的时间间隔,设置为10分钟(60秒 * 10)。
|
|||
|
|
"""
|
|||
|
|
self.get_headers_url = 'http://192.168.1.75:10000/token'
|
|||
|
|
self.timeout = 5
|
|||
|
|
interval = 60 * 10
|
|||
|
|
super().__init__(interval)
|
|||
|
|
|
|||
|
|
def _generate_headers(self):
|
|||
|
|
"""
|
|||
|
|
生成请求头的方法,_generate_headers方法名不允许修改
|
|||
|
|
通过向指定的URL发送GET请求获取token,并将token添加到请求头中
|
|||
|
|
:return: 请求头字典
|
|||
|
|
"""
|
|||
|
|
try:
|
|||
|
|
# 定义请求参数
|
|||
|
|
params = {
|
|||
|
|
'arg1': 'xxx',
|
|||
|
|
'arg2': 'xxx'
|
|||
|
|
}
|
|||
|
|
if self.get_headers_url is not None:
|
|||
|
|
# 发送GET请求获取token
|
|||
|
|
resp = requests.get(self.get_headers_url, params=params, timeout=self.timeout)
|
|||
|
|
LOGGER.info('Get headers resp {}'.format(resp))
|
|||
|
|
if resp.status_code == 200:
|
|||
|
|
token = resp.text
|
|||
|
|
headers = {
|
|||
|
|
'authorization': 'Bearer {}'.format(token)
|
|||
|
|
}
|
|||
|
|
return headers
|
|||
|
|
else:
|
|||
|
|
LOGGER.error('Get headers failed')
|
|||
|
|
return None
|
|||
|
|
except:
|
|||
|
|
LOGGER.exception('_generate_headers')
|
|||
|
|
return None
|