將 curl 轉換為 Clojure

curl2code 使用 clj-http 將 curl 指令轉換為 Clojure 程式碼。轉換過程透過 WebAssembly 在您的瀏覽器中執行,確保完全隱私。若需 Elixir,請參考我們的 curl 轉 Elixir 轉換器。若需 Java,請參閱 curl 轉 Java。下方是實用的 Clojure 範例。

如何從瀏覽器複製 curl

  1. 1

    開啟開發者工具 (DevTools)

    按下 F12Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。

  2. 2

    前往網路 (Network) 分頁

    點擊 Network 分頁,並執行觸發 HTTP 請求的操作。

  3. 3

    複製為 cURL

    右鍵點擊該請求 → CopyCopy as cURL。然後將其貼在上方。

常見問題解答

什麼是 clj-http?

clj-http 是 Clojure 中最受歡迎的 HTTP 用戶端函式庫,包裝了 Apache HttpComponents。它提供了一個地道的、數據驅動的 API,具有自動 JSON/EDN 解析、cookie 管理和連線池功能。添加到 project.clj[clj-http "3.x"]。curl2code 為所有 Clojure 轉換使用 clj-http。

clj-http vs http-kit vs aleph — 該使用哪一個?

clj-http 是同步的、功能豐富且使用最廣泛。http-kit 輕量且支援非同步,非常適合也需要發送 HTTP 調用的伺服器。aleph 建立在 Netty 之上,用於高效能的非同步 I/O。對於類似的函數式語言,請參閱我們的 curl 轉 Elixir 轉換器curl 轉 OCaml

如何在 Clojure 中處理身份驗證?

對於 Bearer 驗證,添加標頭:(client/get url {:headers {"Authorization" "Bearer token"}'})。對於 Basic 驗證,使用內建選項:{:basic-auth ["user" "pass"]}。clj-http 還支援 OAuth 和摘要驗證。curl2code 將 -u 和標頭標記轉換為地道的 Clojure map。

如何在 Clojure 中發送 multipart 表單數據?

使用 :multipart 選項:(client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]})。clj-http 會自動處理 boundary 生成和 Content-Type。curl2code 將 -F 標記轉換為此 Clojure 模式。

如何在 Clojure 中處理 HTTP 錯誤?

預設情況下,clj-http 會在非 2xx 響應時拋出 ExceptionInfo。使用 {:throw-exceptions false} 禁用此功能以獲取響應 map。檢查 (:status response)。使用 try/catch 配合 ex-data 從異常中提取響應。

如何在 Clojure 中發送非同步 HTTP 請求?

使用帶有 clj-http{:async? true},它會返回一個 future。或者使用 http-kit(http/get url callback)。對於並行請求,使用 pmapcore.async 通道。Clojure futures 運行在 JVM 執行緒池上。對於類似的並行處理,請參閱 curl 轉 Java

如何在 Clojure 中設置逾時?

傳遞逾時選項:(client/get url {:connection-timeout 10000 :socket-timeout 30000})。數值以毫秒為單位。對於重試,使用 :retry-handler 選項或將其包裝在具有指數退避的自定義重試函數中。這些對應於 curl 的 --connect-timeout--max-time

如何在 Clojure 中使用代理?

在選項 map 中設置代理:(client/get url {:proxy-host "proxy" :proxy-port 8080})。對於需要驗證的代理:添加 :proxy-user:proxy-pass。clj-http 還支援 SOCKS 代理。curl2code 將 -x--proxy 標記轉換為正確的 Clojure 代理選項。

如何在 Clojure 中發送帶有 JSON 主體的 POST 請求?

使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 指令轉換為 Clojure。生成的程式碼使用 (client/post url {:content-type :json :body (json/generate-string data)})。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 clj-http 程式碼中設置適當的 Content-Type 標頭。

如何在 Clojure 中添加 Bearer 權杖授權?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 clj-http 程式碼::headers {'Authorization' 'Bearer YOUR_TOKEN'}。curl2code 會從 -H "Authorization: Bearer ..."--oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass

如何在 Clojure 中設置 Content-Type 標頭?

curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 clj-http 程式碼::content-type :json。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 clj-http API。

實用連結

curl 指南

將 curl 轉換為其他語言