Menu
Coddy logo textTech

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 には二重引用符が多く含まれるため、本文全体を単一引用符で囲めば、シェルはそのまま扱ってくれます。

challenge icon

チャレンジ

上級者

実際のJSONを送信し、正しくラベル付けされたことを証明してください。

  1. ポート9125でキャプチャリスナーを開始します
  2. JSONとして宣言し、本文{"name":"ada"}/usersにPOSTします
  3. req.txtからContent-Type行を出力します

期待される出力:

Content-Type: application/json

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ターミナルで学ぶネットワークのすべてのレッスン

自分で練習してみよう: Terminalプレイグラウンド