Инструмент командной строки curl — идеальный помощник при работе с HTTP-кодом. Тестируйте запросы, изучайте форматы данных и многое другое!
Протокол передачи гипертекста (HTTP) является основой связи через Интернет, позволяя передавать данные между серверами и клиентами. Однако взаимодействие с конечными точками HTTP может быть сложным, особенно для новичков.
К счастью, curl, инструмент командной строки, предоставляет простой и эффективный способ отправки и получения HTTP-запросов. Здесь вы узнаете, как использовать curl для создания базовых HTTP-запросов POST, GET, DELETE и PUT.
Установка завитка
По умолчанию curl установлен в основных операционных системах, включая macOS, Linux и Unix.
Вы можете подтвердить, что у вас установлен curl, выполнив следующую команду:
завиток
Приведенная выше команда должна напечатать на вашем терминале «попробуйте 'curl --help' или 'curl --manual' для получения дополнительной информации».
Если curl не установлен в вашей операционной системе, вы можете скачать и установить его с страница загрузок curl.
Выполнение запроса HTTP GET
Запрос HTTP GET — это метод запроса данных из веб-сервер. Вы можете использовать эти запросы для получения определенного ресурса, например веб-страницы, изображения или видео.
Вы можете сделать запрос GET с помощью curl в следующем формате:
завиток -X ПОЛУЧИТЬ
Заменять с URL-адресом ресурса, который вы хотите получить.
Например:
завиток -X ПОЛУЧИТЬ https://example.com/todos/1
Выполнение приведенной выше команды отправляет HTTP-запрос GET на URL-адрес. https://example.com/todos/1. -X ПОЛУЧИТЬ Параметр указывает, что метод HTTP — GET. Когда команда запускается, curl отправляет запрос GET на сервер, указанный в URL-адресе, и ожидает ответа сервера.
Если сервер отвечает успешный код состояния, завиток отображает текст ответа в терминале, который в данном случае будет данными JSON об элементе списка дел с идентификатором 1.
Кроме того, вы можете сделать запрос GET без указания -ИКС флаг, потому что по умолчанию curl делает запрос GET, когда вы не указываете метод запроса с -ИКС флаг.
Например:
завиток https://example.com/todos/1
Выполнение приведенной выше команды вернет тот же ответ, что и предыдущая команда, с «-X ПОЛУЧИТЬфлаг.
Выполнение запроса HTTP POST
Запрос HTTP POST — это метод сохранения данных на веб-сервере. В отличие от запроса GET, который отправляет данные как часть URL-адреса, запрос POST отправляет данные в теле сообщения запроса. Это делает запросы POST более безопасными для передачи конфиденциальной информации.
Вы можете сделать запрос POST с помощью curl в следующем формате:
завиток -X ПОСТ -d
Например:
curl -X POST -d 'name=jack' -d '[email protected]' \
https://example.com/users
Приведенная выше команда отправляет запрос POST на https://example.com/users с данными, указанными -д пометить как полезную нагрузку.
-д флаг указывает данные для отправки. В этом случае он указал два параметра данных: имя=джек и электронная почта = [email protected].
Когда вы используете -д флаг более одного раза в команде, вы можете объединить поля, используя символ &.
Например:
curl -d "имя=jack&[email protected]" https://example.com/api/users
Некоторые данные, которые вы можете попытаться отправить в запросе POST, могут быть трудны для размещения в одной строке в вашем терминале. В подобных случаях было бы идеально прочитать и отправить данные из файла с помощью curl.
Чтобы отправить данные из файла в запросе POST в качестве полезной нагрузки с помощью curl, используйте метод @ подписать сразу после -д флаг, за которым следует путь к файлу, который вы хотите, чтобы curl отправил в запросе.
Например:
curl -X POST -d @users.txt https://example.com/api/users
Указание типа содержимого
Используя -д флаг автоматически устанавливает заголовок Content-Type в приложение/x-www-форма-urlencoded. Однако вы можете вручную указать соответствующий Content-Type для вашего запроса, используя -ЧАС или --заголовок флаг, за которым следует желаемый тип контента.
Например:
curl -H "Тип содержимого: приложение/json" \
-d '{"имя": "Джек", "электронная почта": "[email protected]"}' \
https://example.com/api/users
В приведенной выше команде -ЧАС флаг указывает заголовок Content-Type как Тип содержимого: приложение/json.
Вы можете заменить приложение/json с любым другим допустимым типом MIME или типом контента, подходящим для данных, которые вы отправляете в теле запроса. Например, при загрузке двоичных данных, таких как изображение или аудиофайл, вы должны установить для параметра Content-Type значение multipart/form-data.
Это позволяет указать ожидаемый формат отправляемых данных, что может быть важно при взаимодействии с API или веб-службами, требующими определенных типов контента для правильной обработки.
Выполнение HTTP-запроса PUT
Запрос HTTP PUT — это метод обновления существующего ресурса на веб-сервере или его создания, если ресурс не существует. Этот метод отличается от метода POST тем, что является идемпотентным. Это означает, что вызов метода PUT один или несколько раз подряд имеет одинаковый эффект на сервере.
Вы можете сделать запрос PUT с помощью curl в следующем формате:
curl -X PUT -H "Тип содержимого: приложение/json" \
-d '{"имя": "Джек Бауэр", "email": "[email protected]"}' \
https://example.com/api/users/4
Приведенная выше команда отправляет запрос PUT в формате JSON на веб-сервер, указанный в приведенном выше URL-адресе, и обновляет указанный ресурс. Если указанный ресурс не существует, он будет создан на веб-сервере.
Выполнение HTTP-запроса DELETE
Запрос HTTP DELETE — это метод удаления указанного ресурса с веб-сервера. Как и запросы PUT, запросы DELETE являются идемпотентными. Отправка одного и того же запроса DELETE несколько раз на один и тот же ресурс приведет к тому же результату на сервере.
Вы можете сделать запрос DELETE с помощью curl, выполнив следующую команду:
завиток -X УДАЛИТЬ http://example.com/api/users/3
Приведенная выше команда отправляет запрос DELETE на веб-сервер, указанный в приведенном выше URL-адресе, и удаляет указанный ресурс.
Запросы на удаление безвозвратно удаляют указанный ресурс с сервера. Таким образом, веб-сервер, поддерживающий DELETE, обычно требует формы аутентификация или авторизация прежде чем вы сможете сделать этот запрос.
Вот как сделать запрос DELETE с заголовком авторизации:
curl -X DELETE -H "Авторизация: носитель my_access_token" \
https://example.com/api/users/3
Приведенная выше команда предоставляет информацию об аутентификации в заголовке запроса, используя метод аутентификации Bearer с -ЧАС флаг. Авторизация: носитель my_access_token является значением заголовка. my_access_token является заполнителем для вашего фактического значения токена доступа.
Другие способы выполнения HTTP-запросов
Помимо curl, существует несколько способов выполнения HTTP-запросов в зависимости от контекста запроса. Наиболее распространенные методы включают использование веб-браузера, такого как Chrome, инструмента с графическим интерфейсом, такого как Postman, или клиента API.
Каждый из этих вариантов имеет свои преимущества и недостатки. В конечном счете, ваш выбор инструмента будет зависеть от требований вашей задачи.