cURL コンバーター:cURL を fetch・Python・Axios などに変換

ブラウザの DevTools からコピーしたものなど、curl コマンドを貼り付けるだけで 8 つの言語のすぐ動くコードが得られます。ヘッダー、JSON ボディ、フォーム、ファイルアップロード、認証、Cookie もすべて変換します。

ブラウザ内で動作登録不要アップロードなし

変換先
JavaScript fetch

    

    cURL コンバーターの使い方

    1. リクエストを cURL としてコピーします。Chrome や Firefox の DevTools で、Network タブのリクエストを右クリック → Copy → Copy as cURL。
    2. 入力欄に貼り付けます。\ による複数行のコマンド、Windows の ^ による行継続、$'…' 形式の文字列にも対応しています。
    3. 変換先を選びます:JavaScript fetch、Axios、Node.js、Python requests、Python httpx、Go、PHP、HTTPie。
    4. 出力の下に表示される警告を確認します。変換先の言語に相当するものがないオプションが一覧表示されます。
    5. コードをコピーするか、ファイルとしてダウンロードします。

    curl コマンドをコードに変換する理由

    curl は HTTP の共通言語です。API ドキュメントの例は curl で書かれ、ブラウザの DevTools はリクエストを curl として書き出し、サポートチームも再現手順を curl で送ってきます。そのリクエストをアプリケーションに組み込むには、手作業で書き直す必要があります。すべての -H をヘッダーオブジェクトに移し、-d をボディにし、-u を Basic 認証に変換し、-G がデータをクエリ文字列に移すことも忘れてはいけません。このコンバーターはその変換を代わりに行い、そのままプロジェクトに貼り付けられるコードを生成します。

    対応している curl オプション

    オプション変換先
    -X、-I、-GHTTP メソッド(ボディがある場合は POST と推定)
    -H、-A、-e、-bヘッダー、User-Agent、Referer、Cookie
    -d、--data-raw、--data-binary、--data-urlencode、--jsonリクエストボディ:JSON オブジェクト、フォームフィールド、生のテキスト
    -Fマルチパートのフォームデータ(@file のアップロードを含む)
    -u、--oauth2-bearerBasic 認証または Bearer トークン
    -k、-L、-m、-x、--compressedTLS 検証、リダイレクト、タイムアウト、プロキシ、圧縮

    JSON ボディは本物のオブジェクトに

    リクエストが JSON を送る場合(Content-Type: application/json ヘッダー、--json、または JSON として解析できるボディ)、コンバーターはエスケープした文字列ではなくネイティブのデータ構造を出力します。fetch では JSON.stringify({...})、Axios ではプレーンなオブジェクト、requests と httpx では Python の dict(True、False、None)を使った json= です。これでペイロードの編集や変数の埋め込みが簡単になります。

    注意すべき違い

    ブラウザでは証明書チェックを無効にしたり、単一のリクエストだけをプロキシ経由にしたりできないため、ブラウザ用の fetch コードでは -k と -x はコメントとしてのみ出力されます。curl は -L を指定しない限りリダイレクトをたどりませんが、fetch、requests、Go はデフォルトでたどります。Content-Type なしで -d で送ったボディを curl はフォームエンコードしますが、JSON のように見える場合、コンバーターは JSON として送信し、その旨を警告で知らせます。

    よくある質問

    curl コマンドはサーバーに送信されますか?
    いいえ。解析とコード生成はすべてブラウザ内で行われます。DevTools からコピーしたコマンドには Cookie やトークンが含まれていることが多いため、何もアップロード・保存しません。
    Chrome でリクエストを cURL としてコピーするには?
    DevTools(F12)を開き、Network タブでリクエストを右クリックして Copy → Copy as cURL (bash) を選びます。Windows 用の cmd 版もここで使えます。
    ファイルアップロードに対応していますか?
    はい。-F name=@file は JavaScript では FormData、Python では files= の dict、Go では mime/multipart、PHP では CURLFile になります。-d @file と -T file はリクエストボディをファイルから読み込みます。
    コンバーターが知らないオプションはどうなりますか?
    出力の下に警告として一覧表示されるので、黙って無視されることはありません。-s、-v、-o のような出力専用のフラグはリクエストを変えないため無視されます。
    Python では requests と httpx のどちらを使うべきですか?
    requests は同期スクリプトの定番として長く使われています。httpx はほぼ同じ API で HTTP/2 と非同期をサポートし、指定しない限りリダイレクトをたどらないため、curl の挙動により近くなります。

    関連ツール