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

Bash可运行cURL命令转换为Python requests/pycurl代码咨询

requests 库实现方案

优先推荐用更易用的requests实现,执行前先安装依赖:pip install requests

import requests
import urllib3

# 关闭SSL不校验产生的警告
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# 配置参数
cert_path = "../cert/my_cert.pem"
cert_password = "password123"
target_url = "https://my.target.url"
payload = {
    "document": {
        "header": {
            "exportType": "XML"
        }
    }
}

# 发起POST请求
response = requests.post(
    url=target_url,
    json=payload,
    cert=cert_path,
    cert_password=cert_password,
    verify=False  # 对应curl的-k参数,跳过服务端SSL证书校验
)

# 将响应内容写入本地文件
with open(".output_data.xml", "wb") as f:
    f.write(response.content)

# 对应curl的-v参数,需要调试时可打开以下注释打印请求详情
# print("请求状态码:", response.status_code)
# print("响应头:", dict(response.headers))
pycurl 库实现方案

如果需要更贴近原生curl的行为,可以用pycurl实现,执行前先安装依赖:pip install pycurl

import pycurl
import json

# 配置参数
cert_path = "../cert/my_cert.pem"
cert_password = "password123"
target_url = "https://my.target.url"
payload = json.dumps({
    "document": {
        "header": {
            "exportType": "XML"
        }
    }
})

# 初始化curl对象
c = pycurl.Curl()
# 设置请求地址
c.setopt(c.URL, target_url)
# 对应-k参数,跳过SSL证书校验
c.setopt(c.SSL_VERIFYPEER, 0)
c.setopt(c.SSL_VERIFYHOST, 0)
# 配置客户端证书和密码
c.setopt(c.SSLCERT, cert_path)
c.setopt(c.SSLCERTPASSWD, cert_password)
# 配置POST请求参数
c.setopt(c.POST, 1)
c.setopt(c.POSTFIELDS, payload)
# 配置请求头
c.setopt(c.HTTPHEADER, ['Content-Type: application/json'])
# 对应curl的-v参数,开启调试日志输出,不需要可注释
c.setopt(c.VERBOSE, 1)

# 把响应内容直接写入本地文件
with open(".output_data.xml", "wb") as f:
    c.setopt(c.WRITEDATA, f)
    # 执行请求
    c.perform()
    # 释放资源
    c.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:48:03