requests库构造multipart/form-data
时间: 2023-10-07 17:08:17 浏览: 85
可以使用 requests 库的 `requests.post` 方法来发送 multipart/form-data 请求,构造 multipart/form-data 请求需要使用 `requests_toolbelt` 库中的 `MultipartEncoder` 类。
以下是一个示例代码:
```python
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
# 构造 multipart/form-data 请求体
m = MultipartEncoder(
fields={
'field1': 'value1',
'field2': 'value2',
'file': ('test.txt', open('test.txt', 'rb'), 'text/plain')
}
)
# 发送 POST 请求
response = requests.post(
'http://example.com/upload',
data=m,
headers={'Content-Type': m.content_type}
)
print(response.text)
```
在上述代码中,`MultipartEncoder` 类的 `fields` 参数指定了请求体中的字段和文件信息。其中,`file` 字段使用了文件对象,需要使用 `open` 函数打开文件。`Content-Type` 头部需要设置为 `multipart/form-data`。发送请求时,将 `data` 参数设置为 `MultipartEncoder` 对象,并设置 `headers` 参数为 `Content-Type` 头部。
阅读全文