HTTPリクエストからcurlコマンドを作成
構造化されたHTTPリクエストを、POSIX互換シェルへそのまま貼り付けられるcurlコマンドに変換します。メソッド、絶対URL、ヘッダー、必要に応じてテキスト本文を指定してください。空白、クエリ文字列、記号、アポストロフィーを含む動的な値をすべて適切に引用するため、シェルがリクエストのデータを構文として誤解しません。APIの調査、ログに残ったリクエストの再現、技術文書の作成、正確なリクエストの共有に役立ちます。
無料で実行
再現するリクエストを指定します
最初にHTTPメソッドと完全なURLを入力します。URLは絶対形式でなければならず、HTTPSなどのスキームと、ブラウザーの文脈やベースアドレスなしでcurlが宛先を特定できる情報が必要です。認証、コンテンツネゴシエーション、トレース、条件付き処理、Content-Typeの指定が必要な場合は、ヘッダーを名前と値の行として順番に追加します。本文はリクエストに必要なときだけ指定してください。空文字列は意図的な空の本文として扱われ、本文フィールドを省略するとデータオプションも追加されません。生成結果には明示的なメソッド、引用済みURL、各ヘッダーのオプション、本文がある場合の生データオプションが含まれます。ヘッダー順は比較しやすいよう維持されます。このツールは送信、ホスト解決、認証情報の検査、ペイロードの変更を行いません。入力値を決定的なコマンド行へ変換するだけです。
シェル引用が値を守る仕組みです
コマンド行はcurlへ渡る前にシェルが解釈します。そのため、引用せずに値をコピーすると意味が変わることがあります。クエリ内のアンパサンドは別処理を開始し、ドル記号は展開を起こし、空白は引数を分割し、JSON内の引用符はシェル構文になる可能性があります。この生成器は動的な引数をPOSIXの単一引用符で囲みます。値にアポストロフィーが含まれる場合は引用区間を閉じ、二重引用符の断片でその文字を挿入してから、単一引用符を再開します。見慣れない並びですが、sh、bash、dash、zshで元のバイト列を正確に保ちます。ヘッダーは名前、コロン、空白、値を含む1個の引数として出力します。本文には生データ用オプションを使うため、先頭のアットマークはファイル名として解釈されません。出力はPOSIX系シェル向けであり、PowerShellやWindowsコマンドプロンプトには別の規則があります。
実行または共有の前に確認します
ベースアドレスを提供するアプリケーションの外では/users/42のような断片が曖昧になるため、URLがない場合や相対URLの場合は拒否されます。また、メソッドが有効なHTTPトークンか、ヘッダー名がトークン構文に合うか、ヘッダー値が文字列かを検査し、改行を含む値を拒否します。これにより、正しい引用の中へ不正なリクエスト構造が隠れることを防ぎます。ただし、サーバーがメソッドを受け付けるか、URLが目的の環境を指すか、認証情報を公開してよいかまでは判断しません。認証ヘッダー、セッションCookie、個人情報、本番ホストが含まれる場合は、実行前に必ず確認してください。文書や課題管理には短期間のテスト用資格情報を使い、チャットやチケットへ送る前に秘密情報を削除します。同じ入力は常に同じテキストになるため、スナップショット、文書、再現可能な不具合報告、細かな変更を確認するレビューに適しています。
活用例
API障害を再現します
取得したメソッド、URL、ヘッダー、本文を、ローカル調査用の貼り付け可能なコマンドへ変換します。
正確なAPI文書を作成します
JSON、クエリパラメーター、ヘッダーを手作業で引用せず、一貫したcurl例を生成します。
チームへリクエストを共有します
構造を保ち、変更を確認しやすい決定的なコマンドを提供します。
よくある質問
料金はいくらですか?
ブラウザー版は無料です。APIでの実行は1リクエストあたり$0.002です。
HTTPリクエストを実際に送信しますか?
いいえ。コマンド行のテキストを作るだけで、ネットワークには接続しません。
URLが絶対形式である必要があるのはなぜですか?
相対URLは明示されていないベースアドレスに依存するため、単独では完全なcurlリクエストにならないからです。
アポストロフィーはどのように処理しますか?
単一引用区間を閉じ、文字をそのまま挿入し、同じ区間を再開する形に符号化します。
PowerShellでも使えますか?
出力はPOSIX互換シェル向けです。PowerShellは異なる解析規則と引用規則を使用します。
ヘッダー内の秘密情報は削除されますか?
いいえ。値はそのまま保持されるため、共有前に認証情報を削除してください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev2/curl-command-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}'const res = await fetch("https://api.kit.forhosting.com/dev2/curl-command-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"method": "POST",
"url": "https://api.example.com/v1/widgets?draft=true"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/curl-command-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"method": "POST",
"url": "https://api.example.com/v1/widgets?draft=true"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/curl-command-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/curl-command-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"method": "POST",
"url": "https://api.example.com/v1/widgets?draft=true"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.curl_command_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |