cURL 转代码

把浏览器开发者工具里「Copy as cURL」出来的命令粘进来,直接得到各语言的调用代码,请求头、请求体和认证都会解析出来。

解析规则

-X 指定方法,没写就以有没有请求体来判断:带 -d 或 -F 视为 POST,否则是 GET。 -H 按冒号拆成请求头和值;-d、--data-raw、--data-urlencode 的内容合并成请求体; -F 是表单,值以 @ 开头视为文件上传;-u 会算成 Basic 认证头;-b 的内容作为 Cookie。 用了 -G 时,请求体里的内容会被拼到查询字符串上。

短参数在 cURL 里区分大小写,而且含义完全不同:-X 是方法、-x 是代理,-I 是只看响应头、 -i 是把响应头一起输出,-G 是把数据转到查询串、-g 是关闭通配。本页按原始大小写匹配, 被忽略的参数会列在上面,不会被悄悄丢掉。

生成的代码可以直接用吗

能,但要注意三件事。一是示例里的地址和 token 是假的,换成你自己的;二是 JavaScript 的 fetch 代码用了顶层 await,放进模块或 async 函数里才能跑;三是 Go 和 PHP 的表单请求里, 文件上传部分只是占位,需要按各自的 multipart 写法补全。

另外,浏览器里直接请求别人家的接口会被 CORS 拦住,这是浏览器的限制,不是代码写错了。 本地调试时可以起一个开发服务器代理,或者用服务端代码来发请求。

为什么有时候要转成代码

调试接口时,先在浏览器或抓包工具里把请求拷成 cURL 最省事,因为所有请求头和参数都原样带上了。 但要把这个请求固化到项目里,就得换成代码:cURL 没法做重试、签名、串行依赖和错误处理。 常见的坑是漏了某个自定义头(比如网关要求的 X-Request-Id)或者漏了 Cookie,导致换了语言就一直 返回 401 或 403。所以生成代码时把请求头一并带上,比手写更保险。