在 Python 中通过请求发送“Multipart/Form-Data”
Multipart/form-data 是一种常见的编码,用于上传文件和其他数据到网络服务器。使用Python中的Requests库,您可以轻松发送多部分/表单数据请求。
发送文件
要发送文件,您可以使用files参数post() 方法。此参数需要一个字典,其中键是表单字段名称,值是要上传的文件对象。
发送表单数据
除了文件之外,您还可以还可以使用 files 参数发送表单数据。但是,需要注意的是,当您指定 files 参数时,Requests 将发送 multipart/form-data POST 而不是默认的 application/x-www-form-urlencoded POST。
要使用files 参数,您可以简单地传递字符串或字节对象作为表单字段的值。例如:
import requests files = {'foo': 'bar'} response = requests.post('http://httpbin.org/post', files=files)
自定义文件参数
您可以使用元组而不是元组来进一步控制每个文件的文件名、内容类型和附加标头单个字符串或字节对象。元组应包含:
对于示例:
files = {'foo': (None, 'bar')} # No filename parameter
发送具有相同名称的多个字段
您还可以通过提供元组列表作为值来发送具有相同名称的多个字段文件参数。例如:
files = {'foo': [(None, 'bar'), (None, 'baz')]}
使用Requests-Toolbelt
requests-toolbelt项目提供了一个高级的多部分编码器,可以简化发送多部分/表单数据请求的过程。使用此编码器,您可以:
例如:
from requests_toolbelt.multipart.encoder import MultipartEncoder mp_encoder = MultipartEncoder( fields={ 'foo': 'bar', 'spam': ('spam.txt', open('spam.txt', 'rb'), 'text/plain'), } ) headers = {'Content-Type': mp_encoder.content_type} response = requests.post('http://httpbin.org/post', data=mp_encoder, headers=headers)
以上是如何使用 Requests 库在 Python 中发送 Multipart/Form-Data 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!