Чтобы отправить JSON-данные на сервер с помощью Curl, необходимо передать HTTP-заголовок Content-Type: application/json с аргументом командной строки -H и JSON-данные с аргументом командной строки -d (или --data). Данные JSON передаются в виде строки. Вам также может понадобиться отправить HTTP-заголовок -H "Accept: application/json", который информирует сервер о том, что клиент Curl ожидает ответа в формате JSON. Если вы опустите заголовок Accept, сервер может ответить данными, имеющими тип MIME, отличный от JSON. Заголовок Content-Type ответа определяет тип данных, возвращаемых сервером.
1 2 3 4 | curl -X POST https://example.com/echo/post/json -H "Content-Type: application/json" -H "Accept: application/json" -d '{"Id": 7,"Customer":"Leo"}' |
В этом примере Curl POST JSON-данных мы отправляем JSON на адрес example.com.
Что такое Curl?
Клиент для URL (Curl) - это популярный инструмент командной строки для Linux, Windows и macOS, который обычно используется для передачи файлов по сети с помощью протоколов HTTP, HTTPS, FTP или SFTP. Вы можете выполнять запросы GET, POST и HEAD к серверу, получать HTTP-заголовки, загружать HTML-страницы, загружать файлы, отправлять формы и многое другое.
Что такое JSON?
JavaScript Object Notation (JSON) - это формат обмена текстовыми данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается человеком и разбирается компьютером. Несмотря на свое происхождение из JavaScript, этот формат считается языково-независимым и совместимым с большинством языков программирования. Для многих языков программирования существует готовый код для создания и манипулирования данными JSON.
1 2 3 4 5 6 | { "Id": 78912, "Customer": "Jason Sweet", "Quantity": 1, "Price": 18.00 } |
Зачем нужно указывать Content-Type при отправке JSON с помощью Curl?
Если вы не указываете Content-Type при отправке данных с помощью Curl, Curl использует тип содержимого application/x-www-form-urlencoded. Параметр командной строки -H "Content-Type: application/json" должен быть указан при отправке JSON (или любого другого типа данных).
Как отправить JSON с помощью Curl?
Ниже приведен пример отправки JSON в Curl:
1 2 3 | curl -X POST https://example.com/echo/post/json -H 'Content-Type: application/json' -d '{"login":"my_login","password":"my_password"}' |