cURL コードジェネレーター
cURL コマンド入力
cURL コマンドを貼り付けると、URL、リクエストメソッド、ヘッダー、リクエストボディ、よく使うオプションを自動で解析。ワンクリックで JavaScript fetch、Axios、Node fetch、Python requests/httpx、Go net/http、PHP cURL、Java OkHttp、C# HttpClient、PowerShell Invoke-RestMethod、wget など11言語の実行可能なコードを生成します。
リクエスト解析結果
生成されたコード
curlコマンドを貼り付けるだけで、11言語の実行可能なHTTPリクエストコードを瞬時に生成。
関連おすすめ
ユースケース
- Chrome DevToolsのNetworkパネルでリクエストを右クリック→「Copy as cURL」を選択後、本ツールに貼り付けてプロジェクトで使用している言語のコードに直接変換。手書きのリクエストより10倍高速
- サードパーティAPIのドキュメントにcurl例が記載されている場合、Python requests/Java OkHttp/C# HttpClientコードに素早く変換してプロジェクトに埋め込み
- 本番環境のAPIをデバッグする際、キャプチャツール(Charles/mitmproxy/Wireshark)からcurlコマンドをコピーし、単体テストコードに変換して直接検証
- APIドキュメント作成時、複数言語のサンプルを素早く切り替え、異なる技術スタックの読者にすぐに実行可能なサンプルコードを提供
- 本番環境のリクエスト問題をトラブルシューティングする際、curlで問題を再現した後、コード形式に変換して同僚やIssueで共有、他の人が簡単に再現可能
- クロス言語開発時(例:PythonからGoプロジェクトに移行)、既存のcurlリクエストを新しい言語のHTTPクライアント呼び出しコードに素早く変換、ドキュメントを調べる時間を節約
- ShellスクリプトでcurlコマンドをPowerShell Invoke-RestMethodに変換してWindowsの運用担当者に渡す、またはその逆の変換
- HTTPプロトコルの学習:異なる言語で同じリクエストを実装するコードを比較し、各HTTPクライアントライブラリのAPIの違いを理解
- curl -X POST -d 'json'を正しいContent-TypeとJSONシリアライズを含むコードに素早く変換、手動での文字列連結エラーを回避
- CI/CDスクリプトでAPIを呼び出す必要がある場合、ローカルでデバッグしたcurlコマンドを対応するスクリプト言語のコードに変換してパイプラインに埋め込み
使い方
- curlコマンドを取得:ブラウザのDevTools Networkパネルでリクエストを右クリック→Copy→Copy as cURL (bash);またはPostman/Charles/mitmproxyなどのキャプチャツールからcURLをエクスポート;または自分でcurlコマンドを記述
- 入力ボックスに貼り付け:curlコマンドを上部の入力エリアに貼り付け。単一行/複数行(バックスラッシュによる継続)コマンドをサポート、改行は自動的に除去
- サンプルボタンをクリックして参考に:フォーマットに慣れていない場合は「サンプル1/2/3」をクリックしてプリセットcurlコマンドを読み込み、動作を確認
- 解析結果を確認:解析結果エリアにURL、ヘッダー数、ボディ文字数、および圧縮/リダイレクト/証明書スキップ/Basic認証などのバッジが表示。問題がある場合はオレンジ色の警告が表示
- 必要に応じてメソッドを調整:自動認識されたメソッドが間違っている場合(curlに-X POSTが付いていないがPOSTのはずなど)、ドロップダウンでHTTPメソッドを手動切り替え
- 対象言語を選択:対象コードエリアで対応する言語ボタンをクリック(fetch/Axios/Python requests/Go/PHP/Java/C#/PowerShell/wgetなど)
- コードをコピー:「コードをコピー」ボタンをクリックし、プロジェクト/ターミナルに貼り付けて実行
特徴
- 11種類の対象言語/ライブラリ:フロントエンド(JS fetch/Axios)、Node.js(node-fetch)、Python(requests/httpx)、Go(net/http)、PHP(cURL)、Java(OkHttp)、C#(HttpClient)、PowerShell(Invoke-RestMethod)、コマンドライン(wget)をカバー、主流な技術スタックを網羅
- スマートなcurlコマンド解析:URL、HTTPメソッド、リクエストヘッダー、リクエストボディを自動認識。シングル/ダブルクォート、バックスラッシュエスケープ、複数行コマンド(バックスラッシュ改行)をサポート
- 一般的なcurlオプションを完全サポート:-X/--request メソッド指定、-H/--header ヘッダー、-d/--data/-F フォーム/JSONボディ、-u/--user Basic認証、-A/--user-agent UA、-b/--cookie Cookie、-e/--referer Referer、-L/--location リダイレクト追跡、--compressed 自動解凍、-k/--insecure 証明書検証スキップ、-I/--head HEADリクエスト
- JSONボディのスマート認識:Content-Typeがapplication/jsonの場合、JSON.parse/JSON.stringify/requests(json=)/json=を使用して適切にシリアライズ。生の文字列ではなくネイティブオブジェクトを使用し、言語の慣習に沿ったコードを生成
- Basic認証の自動変換:-u user:passを検出すると、Authorization: Basic <base64>ヘッダーを自動生成するか、各言語のネイティブauthメカニズム(Python auth=、OkHttp credentials、C# credentialsなど)を使用
- セキュリティフラグバッジ:--compressed/-L/-k/-uなどのオプションを自動検出し、解析結果にバッジでわかりやすく表示
- メソッドの手動切り替え:curlメソッドを自動解析した後、ドロップダウンで手動切り替え(GET/POST/PUTなど7種類)が可能、即座に対応するコードを確認
- 安全な文字列エスケープ:各言語のネイティブ文字列リテラルを使用(Pythonの三連引用符/バックスラッシュエスケープ、Goのバッククォートによるraw文字列、C#の@""、PHPのシングルクォート、Javaのダブルクォートエスケープ)、コード実行時の構文エラーを防止
- 解析エラー通知:無効なcurlコマンド(URLがない、curlで始まらない、POSTにボディがないなど)の場合、オレンジ色の警告バッジで具体的な問題を表示
- 3つのサンプルをワンクリックで読み込み:GET+Token認証、POST+JSON、Basic認証+リダイレクト追跡の3つの典型的なサンプルを提供、ツールの機能をすぐに確認可能
- 入力をワンクリックでクリア:Clearボタンですばやくリセット、新しいコマンドを貼り付けても残留なし
- 完全ローカル処理:curlコマンドとリクエスト内容はすべてブラウザローカルで解析・変換、サーバーにアップロードされず、機密性の高いToken/パスワードが漏洩することはありません
- コードをワンクリックコピー:コード生成後、Copyボタンをクリックしてクリップボードにコピー、プロジェクトに貼り付けてすぐに実行可能
- HTTPS不安全モード対応:-k/--insecureオプションを検出すると、Node/Go/Python/PHP/C#/PowerShellなど各言語に対応したTLS証明書検証スキップ設定を生成(wgetは--no-check-certificate、C#はServicePointManager、NodeはNODE_TLS_REJECT_UNAUTHORIZEDを設定)
よくある質問
cURL to Codeツールの利点は何ですか?なぜcurlコマンドを直接使わないのですか?
コード内でcurlコマンドを直接呼び出す(shell_exec、subprocess.runなど)にはサブプロセスの起動が必要で、安全でない上にエラー処理、レスポンスヘッダーの取得、型変換が難しくなります。本番コードではプログラミング言語ネイティブのHTTPクライアント(Python requests、Java OkHttp、JS fetchなど)を使用すべきです。curl-to-codeの価値は、DevTools/キャプチャツールからコピーしたcurlコマンドを対象言語のHTTPクライアントコードに自動翻訳し、APIドキュメントを調べたり手動でクォートをエスケープしたりJSON/認証を処理したりする機械的な作業を省くことです。コピーして貼り付ければすぐに実行できます。
どの対象言語/ライブラリをサポートしていますか?
現在11種類のターゲットをサポートしています:JavaScript fetch(ブラウザネイティブ)、Axios(Node/ブラウザ両用HTTPライブラリ)、Node.js node-fetch、Python requests(Pythonで最も人気のあるHTTPライブラリ)、Python httpx(HTTP/2と非同期をサポートする次世代HTTPライブラリ)、Go net/http(Go標準ライブラリ)、PHP cURL拡張、Java OkHttp(Android/バックエンド両用高性能ライブラリ)、C# HttpClient(.NET標準HTTPクライアント)、PowerShell Invoke-RestMethod(Windows自動化スクリプトで一般的)、wget(コマンドラインダウンロードツール)。必要な言語がリストにない場合(Ruby、Rust reqwest、Dart http、Swift URLSessionなど)、ページからフィードバックをお送りください。需要に基づいて追加を検討します。
Chrome DevToolsからcurlコマンドをコピーするにはどうすればよいですか?
手順:1. Chrome/Edgeを開き、F12を押してDevToolsを開く;2. Networkパネルに切り替え;3. ページを更新するか対象リクエストをトリガー;4. リクエストリストで対象リクエストを見つける(XHR/JSでフィルタ可能);5. そのリクエストを右クリック→Copy→「Copy as cURL (bash)」を選択(互換性のためbashバージョンを推奨);6. 本ツールの入力ボックスに貼り付け。Copy as fetchは選択しないでください(JSコードでありcurlではありません)。Firefox/Safariも同様の操作でCopy as cURLオプションがあります。
curlコマンドのクォート処理が面倒ですが、どのような形式をサポートしていますか?
bashスタイルのシングルクォート、ダブルクォート、バックスラッシュエスケープ;Windows cmdのダブルクォート+^エスケープ;PowerShellのバッククォートエスケープを認識します。bash形式(シングルクォート)の使用を推奨します。複数行コマンド(バックスラッシュ\による継続)も貼り付け可能で、ツールが自動的に改行と継続文字を除去します。curlコマンドが特に複雑な場合(シェル変数、コマンド置換$(...)、パイプ|などを含む)、ターミナルでechoコマンドを実行して展開後の実際のcurlを出力してからコピーするか、事前に手動で簡略化(変数を実際の値に置換)することを推奨します。
curlで-dを使ってJSONを送信すると、なぜサーバーから文字化け/400が返されるのですか?
これは最も一般的なcurlの間違いの1つです。curlの-d/--dataオプションのデフォルトContent-Typeはapplication/x-www-form-urlencoded(フォーム形式)であり、application/jsonではありません。curl -d '{"name":"demo"}' url を直接実行すると、サーバーはフォームとして解析し(解析に失敗するか空のデータを受け取ります)、正しくJSONを送信するには明示的に-H "Content-Type: application/json"ヘッダーを追加する必要があります。本ツールはボディはあるがContent-Typeがない場合にオレンジ色の警告を表示します。
生成されたコードは直接コピーして実行できますか?どのような依存関係をインストールする必要がありますか?
ほとんどの言語のコードは標準ライブラリを使用して直接実行できます(fetch/Go net/http/PHP cURL/C# HttpClient/PowerShell/wgetはすべて組み込み)。追加のインストールは必要ありません。サードパーティライブラリが必要なもの:Axios(npm install axios)、node-fetch(npm install node-fetch、Node 18+にはfetchが組み込まれているためインストール不要)、Python requests(pip install requests)、Python httpx(pip install httpx)、Java OkHttp(Maven/Gradleでokhttp3依存関係を追加)。コードはデフォルトでレスポンスステータスコードとテキストを出力します。必要に応じて処理ロジックを変更してください。
multipart/form-dataファイルアップロード(-Fパラメータ)はサポートしていますか?
基本サポート:-Fパラメータはリクエストボディとして認識されますが、生成されるコードは現在@fileを実際のファイルアップロードではなくリテラル文字列として処理します。ファイルアップロードにはローカルファイルの内容の読み取りが必要で、言語によって処理方法が大きく異なります(JSはFormData/FormData.append、Pythonはfiles=パラメータ、Goはmultipart.Writerを使用)。ツールで生成されたコードを基に、各ライブラリのファイルアップロードドキュメントを参照して調整することを推奨します。今後のバージョンでmultipartサポートを強化する予定です。
curlコマンドや機密データがアップロードされることはありますか?
全くありません。すべての解析とコード生成は100%お使いのブラウザローカルで行われます(純粋なフロントエンドJavaScript)。curlコマンド、ヘッダー内のToken/Cookie/パスワード、リクエストボディ内のデータがいかなるサーバーにも送信されることはありません。オフラインでも本ツールを使用でき、機密情報の漏洩を心配する必要はありません。
-k/--insecure証明書検証スキップは各言語のコードでどのように処理されますか?
-kを検出すると、本ツールは各対象言語に対応した証明書スキップ設定を生成します:Python requests/httpxはverify=Falseを使用;Node.jsはprocess.env.NODE_TLS_REJECT_UNAUTHORIZED='0'を設定;Goはカスタムtls.Config{InsecureSkipVerify: true}を作成;PHPはCURLOPT_SSL_VERIFYPEER=falseとCURLOPT_SSL_VERIFYHOST=0を設定;Java OkHttpはカスタムTrustManagerが必要(コードが長いためコメントで記載);C#はServerCertificateCustomValidationCallbackをカスタマイズ可能;PowerShellは-SkipCertificateCheckを使用(PS6+);wgetは--no-check-certificateを使用;ブラウザfetchは証明書をスキップできません(ブラウザのセキュリティ制限、コードにコメントを追加)。注意:これらの設定はローカル開発/テスト専用です。本番環境では絶対に証明書検証を無効にしないでください。
生成されたGoコードがリダイレクトを追跡しないのはなぜですか?-Lを追加したので追跡するはずですが?
Goのnet/httpのデフォルト動作はリダイレクトを追跡しないことです(curlのデフォルト動作と同じ——curlは明示的に-Lを追加しないと追跡しません)。ツールが-Lパラメータを検出すると、空のclient(http.Client{}、デフォルトのCheckRedirectがnilで、10回リダイレクトを追跡)を生成;-Lがない場合はCheckRedirectがhttp.ErrUseLastResponseを返すclientを生成し、リダイレクトを追跡しません(curlに-Lがない場合の動作と一致)。Goで常にリダイレクトを追跡したい場合は、コードで直接http.DefaultClientまたはカスタムClient{Timeout: ...}を使用してください。
ログイン/Cookieが必要なリクエストはどのように処理しますか?
2つの方法があります:①ログイン済みブラウザのDevToolsから直接curlをコピー(推奨):リクエストを右クリック→Copy as cURL、これによりcookie/ヘッダーが自動的に含まれ、貼り付けて変換すればすぐに実行可能;②curlで-b/--cookieを使用して手動でCookie値を指定(-b 'sessionid=abc; token=xyz')、-u/--userでBasic認証を指定、-H "Authorization: Bearer xxx"でBearer Tokenを指定、ツールはこれらのヘッダーをそのまま変換します。注意:ブラウザからコピーしたCookieには有効期限があり、数時間後に失効する場合があるため再コピーが必要です。
なぜPython requestsでJSONボディにdata=ではなくjson=パラメータを使用するのですか?
Python requestsライブラリのdataパラメータはdictをapplication/x-www-form-urlencodedとしてエンコードし、文字列をそのまま送信します。一方、jsonパラメータはdict/リストをJSON文字列に自動シリアライズし、Content-Type: application/jsonヘッダーを自動的に設定します(手動で設定していない場合)。本ツールはContent-Typeにapplication/jsonが含まれ、ボディが有効なJSONであることを検出すると、JSONをPython dictに自動解析してjson=パラメータを使用します——これによりコードがより簡潔になり、手動でのjson.dumpsが不要で、Content-Typeヘッダーの付け忘れもありません。JSON以外のボディ(フォーム/XML/プレーンテキスト)はdata=パラメータを使用してraw文字列を送信します。
curlコマンドが長くてヘッダーが多いのですが、生成されたコードにすべてのヘッダーが含まれる場合はどうすればよいですか?
DevToolsからコピーしたcurlコマンドには、ブラウザが自動的に追加する多くのヘッダー(Host、Connection、Accept、Accept-Encoding、Accept-Language、Sec-Fetch-*、sec-ch-ua、Upgrade-Insecure-Requestsなど)が含まれます。これらのヘッダーのほとんどはコード内で明示的に設定する必要がありません(HTTPクライアントがAccept-Encoding、Connection、Host、Content-Lengthなどの適切なデフォルト値を自動的に追加します)。生成されたコードをコピーした後、不要なヘッダーを手動で削除することを推奨します。少なくとも次のものは残してください:Content-Type、Authorization、Cookie(必要な場合)、カスタムビジネスヘッダー。余分なヘッダーはコードを見にくくするだけでなく、異常な動作を引き起こす可能性があります(例:Accept-Encodingを明示的に設定するとクライアントが自動解凍しないなど)。
HTTPSプロキシ(-x/--proxy)パラメータはサポートしていますか?
HTTPプロキシ(-x/--proxy)パラメータは現在自動変換されません。プロキシ設定は言語によって大きく異なります(JS fetchにはネイティブプロキシサポートがなくAgentが必要、Pythonはproxies=パラメータを使用、GoはTransport.Proxy経由、PHPはCURLOPT_PROXYを使用、C#はWebProxyを使用、JavaはOkHttpClient.Builder().proxy()を使用)。プロキシヘッダー(プロキシ自体の認証)も個別に処理する必要があります。現在のバージョンではプロキシ関連パラメータは無視されます。生成されたコードに手動でプロキシ設定を追加できます。今後のバージョンでプロキシサポートを強化する予定です。
curlconverter.comなどのオンラインツールと比較して何が違いますか?
curlconverter.comなどの有名なツールと比較して、GeekFormatのcurl-to-codeの利点:①完全ローカル処理(curlconverterの処理ロジックはサーバーサイドまたはクライアントサイド)——データをアップロードせず、より安全;②中国語のインターフェースと中国語の説明、中国の開発者にとって使いやすい;③生成されるコードが実際の本番使用により適合(例:Python requestsでJSONボディにdata=ではなくjson=パラメータを使用、Goのデフォルト動作をcurlに合わせる、C#でContent-Typeをapplication/jsonにハードコードせず正しく処理);④包括的なドキュメント、FAQ、対応表、トラブルシューティング——単なるコード生成ではなく、なぜそう書くのか理解を助ける;⑤無料で広告なし、登録/ログイン不要、ネットワークリクエストなしで使用可能。
トラブルシューティング
curlコマンドを貼り付けた後に「URLが見つかりません」と表示される
URLの前にcurlコマンドがない(HTTPヘッダーを直接貼り付けた) URLが折り返されているがバックスラッシュで継続されておらず、ツールが複数行のURLを認識できない URLに特殊文字(&など)が含まれていてシェルによって切り詰められた シングルクォート内のURLにネストされたエスケープされていないシングルクォートがある
生成されたPython requestsコードを実行すると401/403が返される
Cookie/Tokenの期限切れ:DevToolsからcurlをコピーした時点ではCookieは有効ですが、時間が経つと失効します User-Agentがない:一部のAPIはUser-Agentを検証します。ブラウザからコピーしたcurlにはブラウザUAが含まれますが、生成されたコードでは保持または喪失される場合があります Referer/Originヘッダーがない:一部のアンチホットリンク/CSRF検証がこれらのヘッダーをチェックします sessionidが正しく渡されていない:一部のサイトではリクエスト前にログインしてCookieを取得する必要があります
POST JSONデータを送信してもサーバーが受信しない
Content-Type: application/jsonヘッダーがない:curl -dのデフォルトContent-Typeはapplication/x-www-form-urlencodedであり、JSONではありません JSON文字列のダブルクォートがエスケープされていない:シェル(bash/cmd/PowerShell)によってクォートの処理が異なるため、間違った形式でコピーするとJSONが不完全になります 生成されたコードでJSONが二重エスケープされている(オブジェクトが再度JSON.stringifyされている) ボディに日本語/中国語が含まれているがエンコードされていない
コード実行後にSSL/TLS証明書エラーが発生する
対象HTTPSサイトが自己署名証明書を使用している:curlに-kを付けたがコードに反映されていない(証明書スキップ設定が生成されているか確認) Node.js環境変数が設定されていない:-k検出時にprocess.env.NODE_TLS_REJECT_UNAUTHORIZED='0'を生成しますが、fetch呼び出しの前に配置する必要があります 社内プロキシのSSL Inspection(中間者証明書):検証を無効にするのではなく、社内ルート証明書を信頼ストアに追加する必要があります Pythonのverify=Falseはrequestsにのみ有効で、基盤となるurllib3はInsecureRequestWarningを表示します
生成されたコードのレスポンス結果がcurlと異なる
自動追加されたリクエストヘッダーが失われている:ブラウザはHost/Connection/Accept/Accept-Encoding/Accept-Language/Sec-Fetch-*などのヘッダーを自動的に追加します。これらのヘッダーが保持されるかどうかがレスポンスに影響します リダイレクト処理の一貫性がない:fetchはデフォルトでリダイレクトを追跡、Goはデフォルトで追跡しません。本ツールは-Lパラメータに基づいて対応する設定を生成します 圧縮/解凍の違い:--compressed使用時、一部のライブラリでは自動解凍を明示的に設定する必要があります HTTP/2 vs HTTP/1.1:curlはデフォルトでHTTP/2をネゴシエートします。一部の古いサーバーはHTTPバージョンに敏感です Cookie Jar:curl -bは毎回手動でCookieを送信しますが、一部のライブラリはCookieを自動管理するため、複数リクエストでCookieが変化する場合があります
コピーしたcurlコマンドが長すぎて貼り付け時に切り詰め/エラーが発生する
リクエストヘッダーが多すぎる(例:ブラウザが数十個のヘッダーを自動追加):不要なヘッダー(sec-ch-ua、sec-fetch-*、Accept、Accept-Languageなどの必須でないヘッダー)を手動で削除してください Base64エンコードされたファイル/大きなボディでコマンドが極端に長くなる:--data-binary @fileを使用してファイルからボディを読み込んでください Windows cmdのコマンドライン長制限(8191文字):PowerShellまたはWSLでbash形式のcurlをコピーしてください コピー時に空白文字で切り詰められる:DevToolsの右クリックから完全にコピーされていることを確認してください
用語集
- cURL / curl
- オープンソースのコマンドラインツールおよびlibcurlライブラリ。コマンドラインからURLを介してHTTP/HTTPS/FTPなどのプロトコルリクエストを送信するためのもので、開発者がAPIをデバッグするための最も一般的なツール。
- HTTPメソッド
- HTTPリクエストのアクション。一般的なもの:GET(読み取り)、POST(作成)、PUT(全体更新)、PATCH(部分更新)、DELETE(削除)、HEAD(ヘッダー取得)、OPTIONS(サーバー機能の照会)。
- リクエストヘッダー
- HTTPリクエスト内のメタデータのキーと値のペア。Content-Type、Authorization、User-Agent、Cookie、Acceptなど。curlでは-H/--headerで指定。
- リクエストボディ
- HTTPリクエストのデータ部分。POST/PUT/PATCHでよく使用され、curlでは-d/--data/--data-binary/-Fで指定。一般的な形式:JSON、form-urlencoded、multipart/form-data。
- Content-Type
- ボディのメディアタイプを示すリクエスト/レスポンスヘッダー。application/jsonはJSON、application/x-www-form-urlencodedはURLエンコードフォーム、multipart/form-dataはファイルアップロードフォーム。
- Basic認証
- HTTP基本認証。Authorization: Basic base64(user:pass)ヘッダーでユーザー名とパスワードを渡します。curlでは-u user:passで指定。
- Bearer Token
- トークンベースの認証方式。Authorization: Bearer <token>ヘッダーで渡します。JWT/OAuth2で一般的。
- User-Agent
- クライアントタイプ(ブラウザ/クローラー/スクリプト)を識別するリクエストヘッダー。curlはデフォルトで"curl/バージョン番号"を送信します。多くのウェブサイトは非ブラウザUAをブロックするため、-Aで指定するのが一般的。
- Cookie
- サーバーがSet-Cookieで送信し、ブラウザが後続のリクエストでCookieヘッダーで返すキーと値のペア。セッション維持に使用されます。curl -bでCookieを送信、-cでCookieを保存。
- Referer
- 現在のリクエストの参照元ページURLを示すリクエストヘッダー。一部のアンチホットリンク/CSRF検証でチェックされます。curl -eで設定。
- リダイレクト(3xx)
- サーバーが301/302/303/307/308ステータスコードを返し、ブラウザに新しいURLへのジャンプを指示すること。curlはデフォルトで追跡せず、-L/--locationを追加すると追跡します。
- --compressed
- curlオプション。Accept-Encoding: deflate, gzipヘッダーを自動的に追加し、レスポンスを自動的に解凍します。設定しないとレスポンスが文字化けした圧縮データになる場合があります。
- -k/--insecure
- curlオプション。HTTPS証明書検証をスキップします。自己署名証明書のテスト環境でのみ使用し、本番環境では使用禁止。
- fetch API
- ブラウザネイティブのJavaScript HTTPリクエストAPI。Promiseを返し、すべてのモダンブラウザでサポート。
- Axios
- Promiseベースの人気HTTPクライアントライブラリ。ブラウザとNode.jsの両方で使用可能、自動JSONシリアライズ、インターセプター、タイムアウトキャンセル。
- OkHttp
- Square社製のJava/Android HTTPクライアントライブラリ。高性能、HTTP/2サポート、接続プール、透過的GZIP。
- HttpClient(.NET)
- C#/.NETで推奨されるHTTPクライアント。System.Net.Http名前空間、.NET Core/.NET 5+標準API。
- Invoke-RestMethod
- PowerShell 3.0+組み込みのHTTPリクエストコマンドレット。JSON/XMLレスポンスを自動的にPowerShellオブジェクトに解析。
cURL一般的なオプションと11言語対応表
| curlオプション | 目的 | JS fetch | Axios | Python requests | Go net/http | PHP cURL | Java OkHttp | C# HttpClient | PowerShell | wget |
|---|---|---|---|---|---|---|---|---|---|---|
| -X METHOD | HTTPメソッド指定 | method: 'POST' | method: 'post' | requests.request('POST') | http.NewRequest('POST') | CURLOPT_CUSTOMREQUEST | .method() | HttpMethod.Post | -Method POST | --method=POST |
| -H 'K: V' | リクエストヘッダー追加 | headers: {} | headers: {} | headers={} | req.Header.Set | CURLOPT_HTTPHEADER | .addHeader() | .Headers.TryAddWithoutValidation | $headers=@{} | --header= |
| -d 'data' | リクエストボディ | body: data | data: data | data=/json= | strings.NewReader | CURLOPT_POSTFIELDS | RequestBody.create | new StringContent | -Body | --body-data= |
| -u user:pass | Basic認証 | Authorizationヘッダー | auth:{} | auth=(u,p) | req.SetBasicAuth | CURLOPT_USERPWD | Credentials.basic | new NetworkCredential | 自動的にヘッダーに変換 | --user/--password |
| -L | リダイレクト追跡 | redirect:'follow' | maxRedirects: N | allow_redirects=True | デフォルトCheckRedirect | CURLOPT_FOLLOWLOCATION | .followRedirects | AllowAutoRedirect=true | デフォルトで追跡 | -L |
| -k | 証明書検証スキップ | ブラウザではサポートされない | httpsAgent | verify=False | TLSClientConfig | CURLOPT_SSL_VERIFYPEER=false | カスタムTrustManagerが必要 | ServerCertificateCustomValidationCallback | -SkipCertificateCheck | --no-check-certificate |
| --compressed | 圧縮を受け入れ | デフォルトでサポート | 自動解凍 | 自動解凍 | 手動gzipが必要 | 自動解凍 | デフォルトでサポート | AutomaticDecompression | -TransferEncoding | デフォルトで解凍しない |
| -A UA | User-Agent | User-Agentヘッダー | headers | headers={} | req.Header.Set | CURLOPT_USERAGENT | .header() | デフォルト | -UserAgent | --user-agent= |
| -b cookie | Cookie | Cookieヘッダー | headers/withCredentials | cookies={} | req.Header.Set | CURLOPT_COOKIE | .header() | CookieContainer | -WebSession | --header= |
| -m SECS | タイムアウト | AbortController | timeout:N | timeout=N | http.Client.Timeout | CURLOPT_TIMEOUT | .callTimeout | client.Timeout | -TimeoutSec | --timeout= |
Content-Type一般的な値とcurlでの使用法
| Content-Type | 用途 | curl例 | 備考 |
|---|---|---|---|
| application/json | JSONデータ送信 | curl -H 'Content-Type: application/json' -d '{"a":1}' | 最も一般的なAPIタイプ。-dはデフォルトでこのヘッダーを設定しないため、明示的に-Hで指定する必要があります |
| application/x-www-form-urlencoded | URLエンコードフォーム | curl -d 'name=a&age=1' | -dを-Hなしで使用する場合のデフォルトタイプ |
| multipart/form-data | ファイルアップロード | curl -F 'file=@a.png' -F 'name=a' | -FがこのContent-Typeとboundaryを自動的に設定 |
| text/plain | プレーンテキスト | curl -H 'Content-Type: text/plain' -d 'hello' | 通常のテキスト、APIではあまり使用されない |
| application/octet-stream | バイナリデータ | curl --data-binary @file.bin | --data-binaryを使用してrawバイナリを送信 |
| application/xml | XMLデータ | curl -H 'Content-Type: application/xml' -d '<x/>' | SOAP/レガシー企業APIで使用 |
Chrome DevTools Copy as cURLの3形式比較
| 形式 | クォートスタイル | エスケープ文字 | 使用場面 |
|---|---|---|---|
| Copy as cURL (bash) | シングルクォート '...' | \'でシングルクォートをエスケープ | Linux/macOS/WSL/Git Bash、本ツールへの貼り付けに推奨 |
| Copy as cURL (cmd) | ダブルクォート "..." | ^で特殊文字をエスケープ | Windows cmd.exeコマンドプロンプト |
| Copy as cURL (PowerShell) | ダブルクォート/バッククォート | `でエスケープ | Windows PowerShell 5/7 |
| Copy as fetch | JSテンプレートリテラル | エスケープ不要 | ブラウザConsoleで直接実行 |
- 認証ヘッダー生成
- Cache-Control解析
- Content-Disposition解析
- CORSヘッダー生成
- CORS インスペクター
- CSP生成
- cURL コードジェネレーター
- DNS グローバル伝播チェック
- DNS参照
- Forwardedヘッダー解析
- hreflang生成
- HSTS解析
- HTTPクッキー解析ツール
- HTTPヘッダー検査
- HTTPリクエスト送信
- HTTPステータスコード検索
- IP アドレス検索
- IPv4 コンバーター
- IPv4範囲展開
- IPv6ツールボックス
- Linkヘッダー解析
- MX照会
- ポートチェック
- URLパラメータ生成
- レートリミットヘッダー解析
- リダイレクトチェッカー
- Robots.txt ジェネレーター
- robots.txt検査
- セキュリティヘッダー検査
- Security.txt ジェネレーター
- Set-Cookieパーサー
- サイトネットワーク監査
- Sitemap ジェネレーター
- Sitemap検査
- SSL証明書チェッカー
- サブネット計算機
- URL解析
- User-Agentパーサー
- UTMリンク生成
- WebSocketテスト
- 私のIPとは?
- WHOIS検索