實用工具

curl 轉程式碼

把 curl 指令(包括 Chrome 的「複製為 cURL」)轉成 fetch、Python requests、Go、axios 或 PHP 程式碼。

瀏覽器本機執行程式碼轉換8170
免費

輸入

0 B

結果

結果會顯示在這裡。

API 文件的範例是 curl 指令,瀏覽器開發人員工具複製請求也是 curl,但你要寫的並不是 shell 腳本。這個工具以 shell 和 curl 的方式讀取指令——引號、反斜線換行接續、$'…' 字串、多個 -d 以 & 串接、--json 同時設定兩個 JSON 標頭、-G 把資料移到查詢字串——再寫出同一個請求的 JavaScript fetch、Python requests、Go net/http、axios 或 PHP cURL 程式碼。無法轉換的部分,例如代理伺服器、digest 驗證或用戶端憑證,會寫在產生的程式碼開頭的註解裡,而不是默默丟掉。

它是怎麼運作的

  • 指令依 POSIX shell 的引號規則拆分;貼上 Chrome 的「複製為 cURL (cmd)」時,也會處理 cmd.exe 的 ^ 跳脫字元。
  • JSON 請求主體會寫成該語言原生的字面值——Python 用 dict,fetch 和 axios 用物件——方便修改;其他請求主體則保留 curl 實際送出的字串。
  • -F 變成 multipart 表單並從磁碟讀取檔案,-u 變成 Basic 驗證,-m 變成逾時,-k 變成目標語言略過憑證驗證的寫法。
  • 管線之後的內容(例如 | jq)不會轉換,註解裡會說明;$API_KEY 這類 shell 變數原樣保留,並提醒你替換。

你的資料去了哪裡

哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。

本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。

它要花多少

本工具完全免費,不需要登入,也不消耗點數。

常見問題

支援 Chrome 和 Firefox 的「複製為 cURL」嗎?
支援。bash 版本(「複製為 cURL」或「複製為 cURL (bash)」)就是一般的 shell 引號。在 Windows 上,Chrome 另外提供「複製為 cURL (cmd)」,以 ^ 跳脫字元,這種格式也能辨識並還原。PowerShell 版本根本不是 curl 語法,而是 Invoke-WebRequest 腳本,不在支援範圍內。
為什麼我的 API 金鑰還是寫成 $OPENAI_API_KEY?
因為在 shell 裡這是變數,要到執行指令時才會填入值,轉換器無從得知。程式碼裡會原樣保留,註解會列出找到的所有變數。請在程式裡從環境變數讀取——Python 用 os.environ,Node 用 process.env,Go 用 os.Getenv——不要把金鑰直接寫進原始碼。
這是 curlconverter 函式庫嗎?
不是。curlconverter 是做同一件事的知名開源專案,本頁有註明,但這個工具使用自己撰寫、較精簡的解析器,只針對提供的五種語言。它涵蓋決定請求內容的選項——方法、標頭、資料、表單、驗證、Cookie、逾時、重新導向、TLS 驗證——沒有轉換的選項會列在程式碼開頭的註解裡。
-L 和 --compressed 怎麼處理?
fetch、requests、Go 的 http.Client 和 axios 預設就會跟隨重新導向並解壓縮 gzip 回應,不需要額外的程式碼。PHP 的 cURL 預設兩者都不做,所以指令裡有這兩個選項時,PHP 程式碼會設定 CURLOPT_FOLLOWLOCATION 和 CURLOPT_ENCODING。

背後的開源專案

本工具是獨立實作,並未打包第三方函式庫。curlconverter/curlconverter(MIT)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。

curlconverter/curlconverter

也常被稱作

  • curl 轉程式碼
  • curl 轉 python
  • curl 轉 fetch
  • curl 轉 go
  • curl 指令轉換
  • 複製為 curl 轉程式碼
  • curl 轉 axios