requests中使用会话级参数

如果需要在多个请求中使用相同的参数,可以在会话级别设置默认参数:

# 创建带有默认参数的会话
session = requests.Session()
session.params = {'api_key': 'your_api_key'}
 
# API 密钥自动添加到所有请求中
response1 = session.get('https://httpbin.org/get')  # 包括 api_key
response2 = session.get('https://httpbin.org/get', params={'q': 'search_term'})  # 包括 api_key 和 q

# 打印请求路径
print(response1.url)  # https://httpbin.org/get?api_key=your_api_key
print(response2.url)  # https://httpbin.org/get?api_key=your_api_key&q=search_term

除了get请求,还可以设置其他参数

# 创建默认header
session.headers = {'header1': 'requests header1'}
# 创建一个header
_header = {'header2': 'requests header2'}

# 发送请求
response1 = session.get('https://httpbin.org/get')  # 包括 header1
response2 = session.get('https://httpbin.org/get', headers=_header)  # 包括 header1 和 header2

# 打印请求头
print(response1.request.headers)  # {'header1': 'requests header1'}
print(response2.request.headers)  # {'header1': 'requests header1', 'header2': 'requests header2'}

但是data,json,file等参数无法设置,详见如下:

headers: MutableMapping[str, str | bytes]
auth: _Auth | None
proxies: _TextMapping
hooks: dict[str, list[_Hook] | Any]
params: _Params
stream: bool
verify: _Verify | None
cert: _Cert | None
max_redirects: int
trust_env: bool
cookies: RequestsCookieJar
adapters: MutableMapping[Any, Any]
redirect_cache: RecentlyUsedContainer[Any, Any]
posted @ 2025-08-08 11:12  奥润橘_Orange  阅读(11)  评论(0)    收藏  举报