JSONを送信する
Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 35/47。
現在のほとんどの API は、フォームエンコーディングではなく JSON を要求します。変更しなければならない点は 2 つあり、2 つ目を忘れることが、この分野全体で最もよくあるミスです。
curl -s -H 'Content-Type: application/json' \
-d '{"name":"ada"}' http://127.0.0.1:9125/usersまず、本文が JSON になります。次に、Content-Type ヘッダーでそれを宣言する必要があります。そうしないと、curl は本文をフォームデータとして扱ったままだからです。するとサーバーは JSON を key=value の組として解析しようとし、通常は 400 で拒否します。
そのため、API が JSON は無効だと言い、あなたには完全に正しいように見える場合は、JSON を確認する前にヘッダーを確認してください。
引用符にも注意してください。JSON には二重引用符が多く含まれるため、本文全体を単一引用符で囲めば、シェルはそのまま扱ってくれます。
チャレンジ
上級者実際のJSONを送信し、正しくラベル付けされたことを証明してください。
- ポート9125でキャプチャリスナーを開始します
- JSONとして宣言し、本文
{"name":"ada"}を/usersにPOSTします req.txtからContent-Type行を出力します
期待される出力:
Content-Type: application/json自分で試してみよう
ターミナル
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド