Requests 提供了发送多部分/表单数据请求的能力,允许文件上传和表单数据提交.
要上传文件,只需在文件中指定键值对参数,其中键是表单字段名称,值为打开的文件对象或文件路径。例如:
import requests with open('image.jpg', 'rb') as f: file_data = {'image': f} response = requests.post('http://example.com/upload', files=file_data)
要发送表单数据,您还可以使用files参数。但是,与文件上传不同,值不是文件对象,而是字符串或字节。
要指定表单数据,请使用字典,其中键是表单字段名称,值是要提交的数据。例如:
form_data = {'username': 'myusername', 'password': 'mypassword'} response = requests.post('http://example.com/login', files=form_data)
您可以使用文件和数据参数同时上传文件和提交表单数据。如果数据是字符串,则将使用它而不是文件。如果数据是字典,它将与文件合并。
例如:
form_data = {'comment': 'Hello, world!'} file_data = {'image': 'image.jpg'} response = requests.post('http://example.com/post', data=form_data, files=file_data)
requests-toolbelt 库提供增强的多部分支持,包括高级功能,例如:
要使用 requests-toolbelt,请通过 pip install requests-toolbelt 安装它并按照以下步骤操作:
from requests_toolbelt.multipart.encoder import MultipartEncoder
mp_encoder = MultipartEncoder( fields={ 'field_name': 'field_value', ('file_name', 'file_content', 'file_type'), # Other form data fields and files can be added here } )
headers = {'Content-Type': mp_encoder.content_type} response = requests.post('http://example.com/post', data=mp_encoder, headers=headers)
通过使用这些方法,您可以在Python中无缝发送多部分/表单数据请求,以进行文件上传和表单数据提交。
以上是如何使用 Requests 和 Requests-Toolbelt 在 Python 中发送多部分/表单数据请求?的详细内容。更多信息请关注PHP中文网其他相关文章!