首页 >后端开发 >Python教程 >如何使用 Requests 和 Requests-Toolbelt 在 Python 中发送多部分/表单数据请求?

如何使用 Requests 和 Requests-Toolbelt 在 Python 中发送多部分/表单数据请求?

Linda Hamilton
Linda Hamilton原创
2024-12-26 10:37:14622浏览

How to Send Multipart/Form-Data Requests in Python using Requests and Requests-Toolbelt?

在 Python 中使用请求发送多部分/表单数据

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 库提供增强的多部分支持,包括高级功能,例如:

  • 流数据上传
  • 自定义文件名和 MIME 类型
  • 每个部分的额外标头

要使用 requests-toolbelt,请通过 pip install requests-toolbelt 安装它并按照以下步骤操作:

  1. 导入必要的模块:
from requests_toolbelt.multipart.encoder import MultipartEncoder
  1. 创建一个 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
    }
)
  1. Make HTTP协议request:
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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn