tigtools

cURL 轉程式碼工具

貼上 curl 指令(例如從瀏覽器開發者工具或 API 文件複製的指令),即可取得對應語言的程式碼。

在瀏覽器中執行 免註冊

語言

使用方式

  1. 將請求複製為 curl,例如從瀏覽器的開發者工具(Network 分頁按右鍵,選擇「Copy as cURL」)或從 API 文件複製。
  2. 將它貼到輸入框中。使用 \ 的換行接續也沒問題。
  3. 選擇 JavaScript fetch、Node.js axios、Python requests 或 PHP cURL。
  4. 閱讀程式碼下方的任何注意事項,然後複製或下載結果。

運作方式

此轉換器會先以 POSIX shell 的方式將命令拆解為字詞:能辨識單引號、含反斜線跳脫的雙引號、$'…' 字串,以及反斜線行接續。如 $TOKEN 等 shell 變數不會展開,而會保留為文字。

支援的 curl 選項:URL(或 --url)、-X/--request、-H/--header、-d/--data、--data-ascii、--data-raw、--data-binary、--data-urlencode、--json、-F/--form 與 --form-string(欄位及 @file 上傳並含 ;type=)、-u/--user、-G/--get、-I/--head、-A/--user-agent、-e/--referer、-b/--cookie(Cookie 字串)、-L/--location 和 --compressed。短選項可以合併使用,例如 -sSL;值也可以接在選項後,例如 -XPOST。

規則與 curl 一致:多個 -d 值會以 & 串接;資料會讓請求成為 POST,除非 -X 或 -G 另有指定;-G 會將資料以查詢字串的形式附加到 URL;--json 會將 Content-Type 與 Accept 標頭設為 application/json。當主體是 JSON 且 Content-Type 如此聲明時,產生的程式碼會傳送實際物件(Python 使用 json=,PHP 使用 json_encode 的陣列),而不是跳脫後的字串。若是 multipart 表單,Content-Type 標頭會交由程式庫處理,以產生正確的 boundary。

-k/--insecure 會刻意忽略,並附上說明。只會改變 curl 本身輸出的選項(-s、-S、-v、-i、-o、--fail 等)會被忽略並附上說明。任何其他選項都會產生指名該選項的明確錯誤,而不是默默產生行為不同的程式碼。仍有一項差異:curl 只在指定 -L 時跟隨重新導向,而 fetch、axios 與 requests 預設會跟隨;PHP 程式碼只在指定 -L 時跟隨。

此工具只會撰寫程式碼,絕不實際發送請求,因此命令中的 token 與密碼不會被用於任何地方。

範例

在 Python 中重現瀏覽器請求

從 Chrome 的「Network」分頁將失敗的 API 呼叫複製為 cURL,再轉換成 Python requests。標頭、Cookie 與 JSON 主體都會保留,方便你在腳本中重現錯誤。

在 Node.js 中使用 API 文件

API 參考文件顯示「curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur」。axios 版本會使用 auth: { username: "key", password: "" } 與表單編碼的主體。

在 PHP 中上傳檔案

「curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload」會轉成 CURLOPT_POSTFIELDS,搭配 new CURLFile('invoice.pdf', 'application/pdf') 與 note 欄位。

常見問題

這個工具會送出我的請求嗎?

不會。它只會解析指令文字並產生程式碼。不會發出任何請求,因此指令中的 API 金鑰或 Cookie 不會被使用或儲存。

為什麼不轉換 -k/--insecure?

關閉憑證檢查會讓連線容易被攔截。產生的程式碼會保留檢查;如果伺服器的憑證不受信任,請改為修正憑證或信任庫。

為什麼會出現「option is not supported」?

轉換器只會轉換能精確重現其含義的選項。Proxy、用戶端憑證、cookie jar 和類似選項會被拒絕,以免產生與 curl 行為不同的程式碼。

是否支援 Windows cmd 指令?

以「cURL (bash)」格式複製的指令效果最好。Windows cmd 使用 ^ 作為換行接續符號,且引號規則不同;行尾的 ^ 可被接受,但其他 cmd 跳脫字元可能不受支援。

隱私權

指令只會在您的瀏覽器中解析,不會傳送任何請求。不會上傳、儲存或納入分析。