在 Python 中使用请求发送 Multipart/Form-Data
Multipart/form-data 是一种请求格式,允许表单数据和要在单个请求中发送的文件。要在 Python 中的请求中使用此格式,请指定一个 files 参数,该参数应该是一个字典,其中键是表单数据参数名称,值是文件路径或包含文件内容的元组。
以下示例演示发送文件和文本表单值:
import requests files = {'file_field': 'path/to/file.ext', 'text_field': 'text_value'} response = requests.post('http://example.com/upload', files=files)
控制文件名和内容Type
您可以通过使用元组作为文件字典中的值来控制每个部分的文件名和内容类型。该元组应包含 2 到 4 个元素,如下所示:
例如,要指定文本值的文件名和内容类型:
files = {'text_field': (None, 'text_value', 'text/plain')}
指定多个相同的字段名称
要发送多个同名字段,请使用元组列表作为文件字典中的值。
使用 Requests-Toolbelt 实现高级多部分支持
requests-toolbelt 项目提供了高级的 Multipart 支持。与请求不同,它默认不设置文件名参数,并允许从打开的文件对象流式传输字段。
这是使用 requests-toolbelt 的示例:
from requests_toolbelt.multipart.encoder import MultipartEncoder mp_encoder = MultipartEncoder( fields={ 'file_field': ('file.ext', open('path/to/file.ext', 'rb'), 'application/octet-stream'), 'text_field': 'text_value', } ) response = requests.post( 'http://example.com/upload', data=mp_encoder, headers={'Content-Type': mp_encoder.content_type} )
以上是如何使用 Python 的请求库发送包含文件和表单数据的多部分/表单数据?的详细内容。更多信息请关注PHP中文网其他相关文章!