python使用requests上传多文件

文章介绍了两种在Python中使用`requests`库通过MultipartEncoder上传文件(私钥和证书)到HTTP服务器的方法,包括一次性编码所有数据和分组表单数据和文件数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import random
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
file_key = "xxx"
file_crt = "xxx"
url = "http://xxx"
# 方法一, 使用MultipartEncoder方法
def test_upload():
    multipart_encoder = MultipartEncoder(
        fields={
            'name': "aaa",  # 请求参数
            'private_key_file': ('local.ifeilian.cn.key', open(file_key, 'rb'), 'application/x-x509-ca-cert'),  # 文件数据
            'cert_file': ('local.ifeilian.cn.crt', open(file_crt, 'rb'), 'application/x-iwork-keynote-sffkey')  # 文件数据
        },
        boundary='-----------------------------' + str(random.randint(1e28, 1e29 - 1))  # 分隔表单
    )
    headers["Content-Type"] = multipart_encoder.content_type  # 设置 boundary
    res = requests.post(url=url, data=multipart_encoder, headers=headers)
    print(res.json())

# 方法二 表单数据和文件数据分别发送
def test_upload():
    data = { # 表单数据
        'key1': 'testcert',
        'key2': 'testcert',
    }
    files = { # 文件数据
        'cert_file': ("filename_xxx1", "file_binary_data1", "application/x-x509-ca-cert"),
        'private_key_file': ("filename_xxx2", "file_binary_data2", "application/x-iwork-keynote-sffkey"),
    }
    res = requests.post(url=url, files=files, data=data, headers=headers)
    print(res.json())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值