リクエストボディ
JSON、フォーム、マルチパートのアップロード、GraphQL、テキスト、XML、HTML、ファイルそのものを、HTTPリクエストのボディとして送信します。
ボディタブは、リクエストがヘッダーの後に送る内容を設定する場所です。タブ上部の行で種類を選ぶと、下のエディタがそれに合わせて切り替わります。 リクエストにボディがあると、タブにドットが表示されます。

ボディの種類
| 種類 | 送信する内容 | Echolotが追加するContent-Type |
|---|---|---|
| なし | ボディなし。 | なし |
| JSON | エディタ内のテキスト。 | application/json |
| URLエンコード | Webフォームが送信するときと同じ、名前と値のペア。 | application/x-www-form-urlencoded |
| マルチパート | ファイルアップロード付きのWebフォームが送信するときと同じ、テキストフィールドとファイル。 | バウンダリ付きのmultipart/form-data |
| GraphQL | クエリのテキストをそのまま。 | application/graphql |
| 生データ | テキスト、XML、HTML。2段目のチップで選びます。 | text/plain、application/xml、text/html |
| バイナリ | ファイルをバイト単位でそのまま。 | なし |
Content-Typeは、ヘッダータブの自動生成の下に表示されます。別のものを送るには、自分でContent-Typeヘッダーを追加します。Echolotのものの代わりに使われます。
長さとフレーミングのヘッダーは、リクエストの送信時に決まります。
テキストのボディにはどれも{{variables}}と動的な値を入れられ、送信時に埋められます:
{
"lines": [{ "sku": "{{productId}}", "quantity": 1 }],
"note": "Sent at {{$isoTimestamp}}"
}JSON
エディタにJSONを入力するか貼り付けます。行番号、シンタックスカラー、変数用の{{リストが使えます。
整形をクリックすると、JSONがインデントされます。変数は書いたままなので、文字列中や単独の値としての{{productId}}には手を加えません。
ペインが狭いときは、ボタンには魔法の杖だけが表示されます。
試すには、Alpenglowの例でOrders › Create orderを開いてそのボディを見るか、受け取ったボディをそのまま返すEcho › Echo anythingを送信します。
URLエンコード
フィールドは、ヘッダーと同じくキーと値の表に並びます:
- フィールドを追加をクリックして追加します。チェックを入れたフィールドは送信され、外したフィールドは保持されますが送信されません。
- 一括編集をクリックすると、すべてのフィールドをテキストとして編集できます。1行に1つの
Name: valueで、オフにしたフィールドの前には//が付きます。
Echolotは送信時に名前と値をエンコードします。変数が挿入するものもエンコードされるので、値に含まれる+、&、スペースはその文字のまま届きます。
マルチパート
各行がフォームの1つのパートです:
- チェックボックスにチェックを入れると、そのフィールドが送信されます。
- 名前を入力します。
- テキストまたはファイルを選びます。
- テキストでは、値を入力します。
{{variables}}を含められます。 - ファイルでは、選択…をクリックしてファイルを選びます。名前のないフィールドには、拡張子を除いたファイル名が使われます。パートには、ファイルの名前がそのままファイル名として付きます。
- テキストでは、値を入力します。
- 必要なら、パートのContent-Type(例:
image/png)を種類に入力します。空のまま(type (auto))にすると、ファイルには拡張子から決まった種類が付き (.json、.png、.pdfなど。それ以外はapplication/octet-stream)、テキストフィールドには付きません。
行を追加するにはフィールドを追加をクリックし、削除するには−ボタンを押します。ファイルはリクエスト送信時にディスクからストリーミングされるため、 大きなアップロードもメモリに収まる必要はありません。
GraphQL
GraphQLは、Content-Type: application/graphqlでクエリのテキストをボディとして送信します。クエリをこの形式で受け取るサーバ向けです。
変数、スキーマからの補完、スキーマエクスプローラ、サブスクリプションを備えた本格的なGraphQLクライアントが必要なら、代わりに新規GraphQLリクエストを作成してください。
GraphQLを参照してください。
生データ:テキスト、XML、HTML
生データを選び、横の行でテキスト、XML、HTMLのいずれかを選びます。エディタはXMLとHTMLに色を付け、Content-Typeは選択に従います。
バイナリ:ファイル
バイナリを選び、ファイルを選択…をクリックして、送信するファイルを選びます。タブにはファイルの名前、サイズ、パスが表示されます。 別のファイルを選択…で置き換えられます。ファイルはサイズにかかわらず、リクエストを送信するたびにディスクから読み込まれるので、 リクエストは常にその時点のファイルを送信します。ファイルを選ぶまでは、何も送信されません。
Mac App Store版
App Storeエディションが読み込めるのは、自分で選んだファイルだけです。ボディタブで選んだファイルは、以降の送信でも読み込めるままです。 リクエストが、アプリに渡されたことのないファイル(たとえばチームメイトが自分のMacで選んだファイル)を指している場合、送信は止まり、 レスポンスペインにアクセスを許可…が表示されます。ファイルを選ぶと、リクエストがもう一度送信されます。
エディションを比較ボディの保存先
入力したボディは、リクエストの隣に専用のファイルとして保存されます。たとえばcreate-order.req.tomlの隣のcreate-order.body.jsonで、Gitで読みやすくなります。
バイナリのボディは、ファイルのパスとして保存されます。ワークスペースのファイルを参照してください。
大きなボディ
バイナリとマルチパートのファイルは、リクエストの送信時にディスクからストリーミングされるので、どんなサイズのアップロードもメモリに読み込まずに送信できます。 レスポンスは別の話で、到着するそばからディスクに書き込まれ、数百メガバイトでもビューアで軽快に動作します。 レスポンスを参照してください。
