cURL コンバーター:cURL を fetch・Python・Axios などに変換
ブラウザの DevTools からコピーしたものなど、curl コマンドを貼り付けるだけで 8 つの言語のすぐ動くコードが得られます。ヘッダー、JSON ボディ、フォーム、ファイルアップロード、認証、Cookie もすべて変換します。
ブラウザ内で動作登録不要アップロードなし
cURL コンバーターの使い方
- リクエストを cURL としてコピーします。Chrome や Firefox の DevTools で、Network タブのリクエストを右クリック → Copy → Copy as cURL。
- 入力欄に貼り付けます。
\による複数行のコマンド、Windows の^による行継続、$'…'形式の文字列にも対応しています。 - 変換先を選びます:JavaScript fetch、Axios、Node.js、Python requests、Python httpx、Go、PHP、HTTPie。
- 出力の下に表示される警告を確認します。変換先の言語に相当するものがないオプションが一覧表示されます。
- コードをコピーするか、ファイルとしてダウンロードします。
curl コマンドをコードに変換する理由
curl は HTTP の共通言語です。API ドキュメントの例は curl で書かれ、ブラウザの DevTools はリクエストを curl として書き出し、サポートチームも再現手順を curl で送ってきます。そのリクエストをアプリケーションに組み込むには、手作業で書き直す必要があります。すべての -H をヘッダーオブジェクトに移し、-d をボディにし、-u を Basic 認証に変換し、-G がデータをクエリ文字列に移すことも忘れてはいけません。このコンバーターはその変換を代わりに行い、そのままプロジェクトに貼り付けられるコードを生成します。
対応している curl オプション
| オプション | 変換先 |
|---|---|
-X、-I、-G | HTTP メソッド(ボディがある場合は POST と推定) |
-H、-A、-e、-b | ヘッダー、User-Agent、Referer、Cookie |
-d、--data-raw、--data-binary、--data-urlencode、--json | リクエストボディ:JSON オブジェクト、フォームフィールド、生のテキスト |
-F | マルチパートのフォームデータ(@file のアップロードを含む) |
-u、--oauth2-bearer | Basic 認証または Bearer トークン |
-k、-L、-m、-x、--compressed | TLS 検証、リダイレクト、タイムアウト、プロキシ、圧縮 |
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 コマンドはサーバーに送信されますか?
Chrome でリクエストを cURL としてコピーするには?
ファイルアップロードに対応していますか?
-F name=@file は JavaScript では FormData、Python では files= の dict、Go では mime/multipart、PHP では CURLFile になります。-d @file と -T file はリクエストボディをファイルから読み込みます。コンバーターが知らないオプションはどうなりますか?
-s、-v、-o のような出力専用のフラグはリクエストを変えないため無視されます。