首页 > 后端开发 > Python教程 > 如何使用 Requests 库在 Python 中发送 Multipart/Form-Data 请求?

如何使用 Requests 库在 Python 中发送 Multipart/Form-Data 请求?

Barbara Streisand
发布: 2025-01-03 12:09:42
原创
728 人浏览过

How can I send Multipart/Form-Data requests in Python using the Requests library?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板