跳到工具

MIYAIP TOOLS

cURL 转 Python Requests 在线转换器

粘贴 cURL 命令,将支持的选项转换为可编辑的 Python Requests 代码。转换在浏览器中完成,不执行命令,也不访问目标 URL。 分享命令时使用示例凭据。在自己的环境中运行前,检查生成代码的方法、URL、请求头和请求体。

粘贴一条 cURL 命令开始转换。

转换仅在当前浏览器内完成,不执行或保存命令。分享时请使用示例凭据。

三步完成转换

  1. 粘贴一条 HTTP 或 HTTPS cURL 命令,或选择载入示例。
  2. 点击转换为 Python。如果选项不受支持,工具会指出原因并保持输出为空,供你手动检查。
  3. 检查并复制代码。在 Python 环境中安装 Requests,确认可以访问目标服务后再自行运行请求。

输出添加了 5 秒连接超时与 30 秒读取超时。这些是起始值,并非整个任务的截止时间。请按应用需要调整,参见 Requests 超时文档。

从 cURL 到 Python 的变化

输入示例:

curl 'https://example.com/api/products' \
  --json '{"category":"office","limit":3}'

生成的 Python:

import requests

url = "https://example.com/api/products"
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}
body = '{"category":"office","limit":3}'

response = requests.request(
    "POST", url,
    headers=headers,
    data=body.encode("utf-8"),
    timeout=(5, 30),
    allow_redirects=False,
)
response.raise_for_status()
print(response.text)

示例使用虚构端点。转换器将内联 JSON 文本保留为请求体,并添加 JSON 请求头。

转换器展示 JSON cURL 命令及生成的 Python Requests 代码。
将内联 JSON cURL 命令转换为可编辑的 Python Requests 代码。

支持的 cURL 选项

输入 Python 输出或行为
单个 HTTP/HTTPS URL;--url 请求 URL
-X、--request 明确的 HTTP 方法
内联 -H、--header 请求头字典
内联 -d、--data、--data-raw、--data-binary UTF-8 请求体
--data-urlencode name=value 编码后的表单;配合 --get 时转为查询值
单个 --json 请求体 校验后的 JSON 文本及默认 JSON 请求头
-G、--get 将数据参数加入 URL 查询字符串
-u、--user 示例 Basic 鉴权凭据
内联 -b、--cookie Cookie 请求头
HTTP/HTTPS -x、--proxy HTTP 与 HTTPS 请求的代理设置
GET/HEAD 的 -L、--location 允许跟随重定向

请分开书写选项,例如 -X POST,不要合并短选项。文件输入、multipart -F、Shell 替换、重复请求头及非 GET 重定向组合需手动检查。不支持的输入会停止转换,不会静默省略后生成看似完整的代码。

运行前检查行为

cURL 与 Requests 是不同的 HTTP 客户端。转换可见请求设置并不等于复现相同的 TLS 指纹、Cookie 存储、压缩行为或全部传输选项。

转换器保留 TLS 校验,不实现 --insecure,也不展开环境变量或执行命令替换。默认不跟随重定向,除非使用支持的 --location 组合。重定向可能改变 POST 方法或请求体时,应手动检查。

生成的代码使用 raise_for_status() 检查 HTTP 错误。API 也可能在 HTTP 200 中返回业务错误,请按目标服务文档验证。

使用 MIYAIP 代理时,从账户中复制实际协议、主机、端口和鉴权字段。接入大型脚本前,按连接验证指南检查连接。

FAQ

常见问题

转换器会把命令发送给服务器吗?

转换在浏览器本地完成,工具不会发出转换后的请求。复制并运行 Python 代码是你在自己的环境中单独进行的操作。

为什么不支持的选项会停止转换?

部分选项影响文件、Shell 行为或本工具未实现的请求语义。需要手动检查这些选项,而不是静默删除。

为什么 Requests 与 cURL 返回不同结果?

先比较方法、目标 URL、查询值、请求体、凭据和重定向行为。即使这些字段相同,客户端的网络与传输行为仍可能不同。

这和代理格式转换器一样吗?

不一样。本工具将 HTTP 请求命令转换为 Python 代码;代理格式转换器将代理连接信息转换为支持的配置格式。

从已验证的请求继续

先运行一个小请求,检查响应,再将生成代码接入应用。

打开开发者中心