curl を Clojure に変換

curl2code は、clj-http を使用して curl コマンドを Clojure コードに変換します。変換は完全なプライバシー保護のため、WebAssembly を介してブラウザ内で実行されます。Elixir については、curl to Elixir 変換ツールをご確認ください。Java については、curl to Java をご覧ください。以下に、実用的な Clojure の例を示します。

ブラウザから curl をコピーする方法

  1. 1

    デベロッパーツールを開く

    F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。

  2. 2

    ネットワークタブに移動

    ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。

  3. 3

    cURL としてコピー

    リクエストを右クリック → コピーcURL としてコピー を選択します。その後、上に貼り付けてください。

よくある質問

clj-httpとは何ですか?

clj-httpは、Apache HttpComponentsをラップした、Clojureで最も人気のあるHTTPクライアントライブラリです。自動JSON/EDN解析、クッキー管理、およびコネクションプーリングを備えた、慣習的でデータ駆動型のAPIを提供します。project.clj[clj-http "3.x"]を追加します。curl2codeは、すべてのClojure変換にclj-httpを使用します。

clj-http、http-kit、alephのどれを使うべきですか?

clj-httpは同期型で機能が豊富であり、最も広く使用されています。http-kitは軽量で非同期サポートを備えており、HTTP呼び出しも行うサーバーに最適です。alephはNetty上に構築されており、高性能な非同期I/Oを実現します。同様の関数型言語については、curl to Elixir コンバーターまたはcurl to OCamlを参照してください。

Clojureで認証を処理するにはどうすればよいですか?

Bearer認証の場合は、ヘッダーを追加します:(client/get url {:headers {"Authorization" "Bearer token"}'})。Basic認証の場合は、組み込みオプションを使用します:{:basic-auth ["user" "pass"]}。clj-httpはOAuthやダイジェスト認証もサポートしています。curl2codeは、-uおよびヘッダーフラグを慣習的なClojureのマップに変換します。

Clojureでマルチパートフォームデータを送信するにはどうすればよいですか?

:multipartオプションを使用します:(client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]})。clj-httpはバウンダリの生成とContent-Typeの設定を自動的に処理します。curl2codeは、-FフラグをこのClojureパターンに変換します。

ClojureでHTTPエラーを処理するにはどうすればよいですか?

デフォルトでは、clj-httpは2xx以外のレスポンスに対してExceptionInfoをスローします。代わりにレスポンスマップを取得するには、{:throw-exceptions false}で無効にします。(:status response)を確認してください。例外からレスポンスを抽出するには、try/catchを伴うex-dataを使用します。

Clojureで非同期HTTPリクエストを行うにはどうすればよいですか?

clj-http{:async? true}を使用すると、futureが返されます。または、http-kitを使用します:(http/get url callback)。並列リクエストの場合は、pmapまたはcore.asyncチャネルを使用します。ClojureのfutureはJVMのスレッドプールで実行されます。同様の並行性については、curl to Javaを参照してください。

Clojureでタイムアウトを設定するにはどうすればよいですか?

タイムアウトオプションを渡します:(client/get url {:connection-timeout 10000 :socket-timeout 30000})。値はミリ秒単位です。リトライについては、:retry-handlerオプションを使用するか、指数バックオフを伴うカスタムリトライ関数でラップします。これらはcurlの--connect-timeoutおよび--max-timeに対応します。

Clojureでプロキシを使用するにはどうすればよいですか?

オプションマップにプロキシを設定します:(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に渡すと、認証ヘッダー:headers {'Authorization' 'Bearer YOUR_TOKEN'}を含むclj-httpのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。

ClojureでContent-Typeヘッダーを設定する方法は?

curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダー:content-type :jsonを含むclj-httpのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいclj-http APIにマッピングします。

便利なリンク

curl ガイド

curl を他の言語に変換