Tools mentioned in this article
Open the browser-based tool while you read and try the workflow immediately.
「把這個 cURL 寫進程式碼裡好麻煩啊……」
在瀏覽器開發者工具中用「Copy as cURL」複製指令來測試 API。在終端機裡執行沒問題,但一旦要放進自己的程式(Python、JavaScript,什麼都好)裡,就得重新查一次那個函式庫的標頭與 JSON body 該怎麼寫。
cURL 轉換器 能把貼上的 curl 指令轉換成您指定語言的 HTTP 請求程式碼,完全在瀏覽器內完成——因此含有驗證權杖的指令不會外流。

支援的語言
const converters: Record<string, (curl: string) => string> = {
python: curlConverter.toPython, // requests
node: curlConverter.toNodeFetch,
javascript: curlConverter.toJavaScript, // fetch
go: curlConverter.toGo,
rust: curlConverter.toRust,
php: curlConverter.toPhp,
java: curlConverter.toJava,
r: curlConverter.toR,
elixir: curlConverter.toElixir,
dart: curlConverter.toDart,
json: curlConverter.toJsonString, // 不是程式碼,而是結構化的請求資料
};
支援 Python(requests)、JavaScript(fetch)、Go、Rust、PHP、Java、R、Elixir、Dart。
使用方法
- 從瀏覽器開發者工具或 API 文件複製 curl 指令
- 貼到 cURL 轉換器
- 選擇目標語言
- 確認
Authorization、Content-Type、請求 body 是否正確反映出來
curl -X POST "https://api.example.com/users" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Taro","role":"admin"}'
這段指令包含 POST 方法、驗證標頭、JSON body。產生的程式碼應該要用目標函式庫慣用的寫法,把這些內容都表現出來。
為什麼需要真正的解析器,而不是正規表示式
curl 指令是用 shell 語法寫的:
curl 'https://api.example.com/v1/items?q=a b' \
-H "Authorization: Bearer $TOKEN" \
-d '{"name": "it'\''s"}'
巢狀的單/雙引號、'\'' 這種跳脫技巧、換行接續、環境變數,還有兩百多種 curl 參數——想用正規表示式處理這一切,注定是打不贏的仗。這個工具背後使用的函式庫 curlconverter,會先把指令當成 shell 語法解析成正確的語法樹,再從中擷取請求的語意資訊(方法、URL、標頭、body),最後才針對各語言產生程式碼。正確地以 shell 語法解析,正是轉換品質的根基。
隱藏的實用功能:JSON 輸出
把目標語言選成 json,產生的不是程式碼,而是這個請求的結構化拆解結果(方法/URL/標頭/body)。當您想確認「這段 curl 到底在傳送什麼」而不是想讀程式碼時,結構化的拆解結果往往更清楚。
轉換後該檢查的地方
自動轉換是很好的起點,但正式使用前請確認以下幾點:
- 把 API 金鑰、權杖移到環境變數
- 把 URL 抽出到設定檔或常數
- 設定逾時時間
- 加上錯誤回應的處理
- 加上 JSON 解析與型別定義
- 區分正式環境與開發環境的端點
特別是 curl 指令中的 Authorization 標頭,絕對不要直接寫死在程式碼裡。用來快速驗證是沒問題,但正式上線前務必把機密資訊移到環境變數或密鑰管理服務中。
為什麼完全在瀏覽器內處理
curl 指令經常帶有 Authorization 標頭、Cookie,或是內部 API 的網址。為了轉換而把這些資料送到外部服務,等於本末倒置,因此我們把 curlconverter 直接打包在客戶端執行,讓輸入內容完全不會經過網路傳送。
常見問題
「Copy as cURL」複製出來的指令也能用嗎?
可以。從 Chrome DevTools 等工具複製出來的 curl(含標頭與 Cookie)都能正確轉換。不過如果指令中含有 Cookie 或權杖,分享結果前請務必先遮蔽處理。
可以轉換成 Python 的 requests 或 JavaScript 的 fetch 嗎?
可以。支援 Python(requests)、JavaScript(fetch)、Go、Rust、PHP、Java、R、Elixir、Dart 等多種語言與函式庫,請依專案慣例選擇輸出格式。
轉換出來的程式碼可以直接用在正式環境嗎?
作為驗證行為的起點很方便,但正式環境的實作建議加上錯誤處理、逾時設定,以及妥善的憑證管理。請把產生的程式碼當成骨架,再依專案設計調整。
貼上的 curl 指令會被傳送出去嗎?
不會。轉換完全在瀏覽器內完成,curlconverter 函式庫是打包在客戶端執行的,指令不會被傳送到伺服器。
總結
- 要正確解析 curl 需要以 shell 語法解析,光靠正規表示式會遇到極限
json輸出模式很適合用來理解一個請求究竟送出了什麼- 因為指令經常帶有權杖,所以完全在客戶端執行這件事很重要
- 產生的程式碼只是骨架,記得自行加上環境變數化的憑證與錯誤處理
讓您的 API 串接工作,從一開始就更順手。