You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定curl命令转换为等效的Python requests POST代码

将curl命令转换为Python POST请求的解决方案

我尝试将以下curl命令转换为Python POST请求,但未能成功。相关curl命令及部分Python代码如下:

原始curl命令

curl -k -u admin:admin -X POST --header "Content-Type:multipart/mixed" --header "Accept:application/json" -F "myPartnm1=@sftprest;type=application/json" -F "myPartname2=@sftppvteopenkey;type=application/json/oc-stream" http://cdrteo456.serms.com:4456/api/v/cert

我的部分Python代码

if response.status_code == 200:
    print(response.text)

正确的Python实现

使用requests库即可实现对应的请求,需覆盖curl命令中的所有参数逻辑,完整代码如下:

import requests

# 配置认证信息
auth = ('admin', 'admin')
# 请求目标URL
url = 'http://cdrteo456.serms.com:4456/api/v/cert'

# 构造多部分表单数据,对应curl中的-F参数
# 每个字段格式:(文件名, 打开的文件对象, 对应Content-Type)
files = {
    'myPartnm1': ('sftprest', open('sftprest', 'rb'), 'application/json'),
    'myPartname2': ('sftppvteopenkey', open('sftppvteopenkey', 'rb'), 'application/json/oc-stream')
}

# 发送POST请求
response = requests.post(
    url,
    auth=auth,  # 处理-u指定的基本认证
    files=files,  # 处理多部分文件上传
    verify=False,  # 对应-k参数,禁用SSL证书验证
    headers={'Accept': 'application/json'}  # 设置Accept请求头
)

# 响应处理逻辑
if response.status_code == 200:
    print(response.text)
else:
    print(f"请求失败,状态码:{response.status_code},响应内容:{response.text}")

关键注意事项

  • 无需手动指定Content-Type: multipart/mixed:requests在传入files参数时会自动生成合适的多部分请求头,若服务端强制要求multipart/mixed,可在headers中手动添加该字段
  • 文件需确保路径正确:代码中open('sftprest', 'rb')假设文件在当前工作目录,若文件在其他路径需填写完整路径
  • 若没有安装requests库,需先执行pip install requests安装

内容的提问来源于stack exchange,提问作者Grey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:05:21