cURL からコード

curl コマンドを貼り付け、送信されるリクエストを確認して、7言語のコードとしてコピーできます。

解析とコード生成はこのブラウザタブ内で行われます。何もアップロード、保存、送信されません。当方にも送信されません。

上に curl コマンドを貼り付けると、リクエストの概要とコードが表示されます。

使い方

  1. DevTools(Copy as cURL)、API ドキュメント、チャットなどから curl コマンドを貼り付けてください。入力に合わせてコードが表示されます。
  2. まず概要行を確認します。メソッド、URL、ヘッダー数、本文サイズです。概要が正しければ、下のコードも正しいはずです。
  3. 対象言語を選ぶと、コマンドに触れることなくコードとダウンロードのファイル名が変わります。
  4. 警告は、コードに反映されないもの(プロキシ、リダイレクト、シェル変数など)を示します。エラーの場合は中途半端なリクエストを表示せず、生成を停止します。
  5. リセットは入力をクリアして Python に戻します。ページの再読み込みも同じです。

例

コマンド

curl -X POST 'https://httpbin.org/anything?from=ja' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer demo-token' \
  -d '{"name": "Ada", "city": "London"}'

Python

import requests

url = "https://httpbin.org/anything?from=ja"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer demo-token",
}
data = "{\"name\": \"Ada\", \"city\": \"London\"}".encode("utf-8")
response = requests.request("POST", url, headers=headers, data=data)
print(response.status_code)
print(response.text)

上の概要とコードはそのコマンドから生成されたもので、このツールが httpbin を呼び出すことはありません。対応するサブセットは、メソッド、URL、ヘッダー、本文、Basic/Bearer 認証、タイムアウトです。

ルール・制限・既知の問題

  • ファイルアップロードはありません。-F、-T、@file の入力は拒否されるため、ファイルを黙って落とすコードが生成されることはありません。
  • シェル実行はありません。変数、コマンド置換、パイプ、複数コマンドは展開されず、$TOKEN は警告付きで文字どおりに残ります。
  • 1コマンドにつき1つの URL です。余分な URL は警告付きで無視され、ループになることはありません。
  • 転送オプションは再現されません。-L、-k、プロキシ、クライアント証明書、HTTP バージョン、リトライ、圧縮は警告のみです。生成されるコードはクライアントの既定値を使います。
  • curl の暗黙の既定値はありません。User-Agent: curl/… と Accept: */* は追加されず、-A / -H で指定してください。
  • POSIX の引用符のみです。単一引用符、二重引用符、$'...'、バックスラッシュによる行継続に対応し、Windows CMD のエスケープは解析しません。
  • 重複ヘッダーは Go、PHP、Java、C#、Ruby では保持されますが、Python と JavaScript の辞書では「, 」で統合されます。
  • 本文付きの GET/HEAD リクエストは、警告付きで書かれたとおりに生成されます。fetch はこれを拒否します。
  • 履歴や永続化はありません。再読み込みですべて消え、共有ボタンはページのリンクを共有するだけで、コマンドは共有しません。
  • このツールは変換のみで、リクエストを送信することはありません。応答も確認したい場合は API クライアントをご利用ください。

コマンドを変換した後に便利なツールです。