Аргумент командной строки curl -d (или --data) указывает Curl отправить переданные данные на сервер в теле HTTP-сообщения. Когда вы передаете Curl данные с помощью аргумента командной строки -d, Curl по умолчанию отправляет их на сервер в формате Content-Type: application/x-www-form-urlencoded. Чтобы отправить данные в другом формате, вы должны указать правильный тип содержимого с помощью аргумента командной строки -H. Заголовок запроса Content-Type необходим для того, чтобы серверы правильно интерпретировали и обрабатывали данные в теле POST-сообщения.
1 2 | curl https://example.com/echo/post/form -d "key=value&key2=value2" |
В этом примере Curl -d мы отправляем данные на адрес example.com.
Что такое Curl?
Curl - это утилита командной строки для передачи данных на удаленный сервер или с него по одному из поддерживаемых протоколов. Разработчик использует Curl для тестирования API, отправки запросов на сервер и просмотра заголовков ответов сервера. Curl поддерживает более 25 протоколов, включая HTTP, HTTPS, FTPS, FTP и SFTP, а также имеет встроенную поддержку SSL-сертификатов, отправки веб-форм, поддерживает HTTP POST, HTTP PUT, загрузку файлов, HTTP Cookies, аутентификацию пользователей и многое другое.
Что такое метод запроса HTTP POST?
Метод HTTP POST является одним из наиболее широко используемых методов HTTP. POST запрашивает веб-сервер о получении и обработке данных, содержащихся в теле сообщения. Метод POST обычно используется для загрузки файлов и отправки HTML-форм.
Синтаксис POST-запроса Curl
Ниже приведен пример синтаксиса POST-запроса с телом сообщения:
1 | curl -X POST -H "[content type]" -d "[post data]" [options] [URL] |
Где:
- -X: параметр указывает, какой метод HTTP-запроса будет использоваться для связи.
- -H: заголовок content-type указывает тип данных в теле запроса
- -d: параметр указывает данные, которые будут отправлены на сервер в составе POST-сообщения
Как отправить данные с другим типом содержимого с помощью команды curl -d?
Чтобы отправить данные с другим типом содержимого с помощью команды curl -d, передайте правильный заголовок Content-Type с помощью аргумента командной строки -H. Ниже приведен пример отправки запроса Curl с заголовком Content-Type:
1 2 3 | curl https://example.com/echo/post/json -H "Content-Type: application/json" -d '{"position": 1, "amount": 10}' |