requests.Session()
时间: 2025-07-06 22:52:08 浏览: 3
### 使用 Python `requests` 库中的 Session 方法
当使用 `requests.Session()` 创建会话时,该实例可以在多个请求之间保持参数。这有助于提高性能并简化代码结构[^1]。
创建一个新的会话非常简单:
```python
import requests
session = requests.Session()
```
通过这个会话对象发送 HTTP 请求同样直观:
```python
response = session.get('https://httpbin.org/get')
print(response.text)
```
#### 设置默认参数
可以为特定前缀 URL 或者头部信息设置默认值,在后续调用中这些配置会被自动应用:
```python
session.headers.update({'Authorization': 'Bearer my_token'})
session.mount('https://api.example.com/', adapter)
# 发送带有预设头信息的 GET 请求
resp = session.get('/resource', params={'key': 'value'})
```
#### 处理会话期间的所有 Cookies
如果需要访问当前会话内的所有 cookies, 可以这样做:
```python
for cookie in session.cookies:
print(cookie.name, cookie.value)
```
对于更复杂的场景,比如更新现有 cookie 或添加新的 cookie 到会话中,则可以通过如下方式实现:
```python
cookies_dict = {'name': 'example_cookie'}
session.cookies.set(**cookies_dict)
```
#### 关闭连接池资源
完成一系列操作后记得关闭会话来释放资源:
```python
session.close()
```
为了确保即使发生异常也能正常关闭会话,推荐的做法是在上下文中管理会话生命周期:
```python
with requests.Session() as s:
resp = s.post(url='...', data=payload)
...
```
这种方法不仅使代码更加整洁易读,而且能够有效防止潜在的资源泄漏问题[^4]。
阅读全文
相关推荐

















