这只是 `python-requests` 的一个工具集合,但实际上并不适合放在 `requests` 本身里。最低经过测试的 requests 版本是 2.1.0。实际上,toolbelt 应该也能兼容 2.0.1,但由于一些特殊情况,在该版本上进行有效或合理的测试是困难的。
pip install requests-toolbelt 即可开始!
主要亮点是一个流式 multipart form-data 对象,即 MultipartEncoder。
它的 API 看起来是这样的:
from requests_toolbelt import MultipartEncoder
import requests
m = MultipartEncoder(
fields={'field0': 'value', 'field1': 'value',
'field2': ('filename', open('file.py', 'rb'), 'text/plain')}
)
r = requests.post('http://httpbin.org/post', data=m,
headers={'Content-Type': m.content_type})对于不需要文件的请求,您也可以使用 multipart/form-data 编码:
from requests_toolbelt import MultipartEncoder
import requests
m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'})
r = requests.post('http://httpbin.org/post', data=m,
headers={'Content-Type': m.content_type})或者,您也可以只创建字符串并检查数据:
# 假设 `m` 是上述其中一个
m.to_string() # 始终返回 unicode您可以轻松地构造一个 requests 风格的 User-Agent 字符串:
from requests_toolbelt import user_agent
headers = {
'User-Agent': user_agent('my_package', '0.0.1')
}
r = requests.get('https://api.github.com/users', headers=headers)
最初,SSLAdapter 是在 Cory Benfield 的博客上发布的。
这个适配器允许用户为出站 HTTPS 连接选择 Python ssl 模块提供的 SSL 协议之一:
from requests_toolbelt import SSLAdapter
import requests
import ssl
s = requests.Session()
s.mount('https://', SSLAdapter(ssl.PROTOCOL_TLSv1))ForgetfulCookieJar 可以阻止特定的 requests 会话存储 cookies:
from requests_toolbelt.cookies.forgetful import ForgetfulCookieJar
session = requests.Session()
session.cookies = ForgetfulCookieJar()请阅读 建议的工作流程 来 贡献到这个项目。
请在 问题跟踪器 上报告任何 bug