logo
GeekFormat

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言語の実行可能なコードを生成します。

リクエスト解析結果

https://api.example.com/itemsヘッダー 1 個ボディ 15 文字curlToCode.flag.followRedirects

生成されたコード

curlToCode.target.fetch

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コマンドを対応するスクリプト言語のコードに変換してパイプラインに埋め込み

特徴

  • 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を設定)

使い方

  1. curlコマンドを取得:ブラウザのDevTools Networkパネルでリクエストを右クリック→Copy→Copy as cURL (bash);またはPostman/Charles/mitmproxyなどのキャプチャツールからcURLをエクスポート;または自分でcurlコマンドを記述
  2. 入力ボックスに貼り付け:curlコマンドを上部の入力エリアに貼り付け。単一行/複数行(バックスラッシュによる継続)コマンドをサポート、改行は自動的に除去
  3. サンプルボタンをクリックして参考に:フォーマットに慣れていない場合は「サンプル1/2/3」をクリックしてプリセットcurlコマンドを読み込み、動作を確認
  4. 解析結果を確認:解析結果エリアにURL、ヘッダー数、ボディ文字数、および圧縮/リダイレクト/証明書スキップ/Basic認証などのバッジが表示。問題がある場合はオレンジ色の警告が表示
  5. 必要に応じてメソッドを調整:自動認識されたメソッドが間違っている場合(curlに-X POSTが付いていないがPOSTのはずなど)、ドロップダウンでHTTPメソッドを手動切り替え
  6. 対象言語を選択:対象コードエリアで対応する言語ボタンをクリック(fetch/Axios/Python requests/Go/PHP/Java/C#/PowerShell/wgetなど)
  7. コードをコピー:「コードをコピー」ボタンをクリックし、プロジェクト/ターミナルに貼り付けて実行

よくある質問

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 / 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言語対応表

Content-Type一般的な値とcurlでの使用法

Chrome DevTools Copy as cURLの3形式比較

Troubleshooting