Postman : x-www-form-urlencoded 形式データのPOST
前回の記事ではmultipart/form-dataとバイナリデータのアップロード機能をテストしました。Postmanにはリクエストボディには以下の値を挿入できます。
・multipart/form-data
・x-www-form-urlencoded
・Raw
・Text
・JavaScript
・JSON
・HTML
・XML
・バイナリ
・GraphQL
今日はx-www-form-urlencodedをテストしていきます。
x-www-form-urlencoded
Web API やフォーム送信でよく登場する データのエンコード方式 のひとつで、HTTP リクエストの 本文(Body) に、キーと値のペアをクエリ文字列のように詰め込んで送信します。
ヘッダーには以下の値がセットされます。
Content-Type: application/x-www-form-urlencoded
以下の様に複数の値をペアで取り扱うことができます。
key1=value1&key2=value2&key3=value3
日本語や記号は URL エンコードで処理されます。
さっそくやってみる
1. POSTを付けるエンドポイントの作成とテスト
ではテストをしてみます。いつも通り Request Catcher を使っていきます。

適当な名前を入力してGet startedをクリックすると新しいエンドポイントが一瞬で作成されます。

まずはボディを空欄でそのままPOSTのテストを行います。

以下の様にRequest CatcherではPOSTを受け取っていることがわかります。

2. x-www-form-urlencoded のテスト
例えば以下の様にデータを入力して送信をクリックします。

このように複数値が Key Value ペアでPOSTされていることがわかります。

ヘッダーはContent-Type: application/x-www-form-urlencodedが自動でセットされています。
2-1. パラメータの一括編集
送信ボタンの下にある一括編集をクリックします。

このように複数行でKey Valueのペアを記載することができます。

送信をクリックすると実行結果は上記と同じになります。
Postmanが生成するcurlコマンドは以下の様になっています。
curl --location 'https://kameda.requestcatcher.com/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=12345' \
--data-urlencode 'age=40'
3. curlコマンドのインポート
curl で x-www-form-urlencodedを使う場合、以下の様なコマンドになり、Key Value1組ごとに1行ではなく、まとめて&でつないで処理を行うケースが一般的です。
curl -X POST https://kameda.requestcatcher.com/ \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=12345&age=40"
curlコマンドをインストールするPostmanの機能を使うとそのままインポートしてPostmanの x-www-form-urlencoded用に変換してくれます。

4. URL エンコードのテスト
日本語文字や記号はPostmanが自動でURLエンコードしてくれます。

username=12345&age=4%20%200&jpname=%E4%BA%80%E7%94%B0%20
Discussion