Menu
Coddy logo textTech

Отправка JSON

Урок 35 из 47 курса Сетевое взаимодействие в терминале на Coddy.

Сегодня большинство API ожидают JSON, а не кодирование формы. Нужно изменить две вещи, и забыть о второй — самая распространённая ошибка во всей этой области.

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. Отправьте методом POST тело {"name":"ada"} на /users, указав, что это JSON
  3. Выведите строку Content-Type из req.txt

Ожидаемый вывод:

Content-Type: application/json

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Сетевое взаимодействие в терминале

Потренируйтесь самостоятельно: Песочница Terminal