Создаем curl вызов | learnapidoc-ru
Edit me
В этом разделе будем использовать curl для выполнения тех же запросов API сервиса прогноза, которые делали ранее с помощью Postman. Если curl еще не установлен, то читаем вводную инструкцию по установке curl.
👨💻 Создаем запрос к OpenWeatherAPI с помощью curl
- Предположим, что практическое занятие раздела Отправка запросов в Postman выполнено, возвращаемся в Postman.
- В любом запросе кликаем на кнопку
Code
под кнопкойSave
- В диалоговом окне “Generate Code Snippets” выбираем cURL из выпадающего списка и нажимаем на кнопку
Copy to Clipboard
Код Postman для запроса прогноза погоды OpenWeatherMap выглядит в формате cURL следующим образом:
curl -X GET \ 'https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial&appid=fd4698c940c6d1da602a70ac34f0b147' \ -H 'Postman-Token: dcf3c17f-ef3f-4711-85e1-c2d928e1ea1a' \ -H 'cache-control: no-cache'
Postman добавил свою информацию о хедере (обозначено -Н) Тэги добавленного заголовка можно удалить. Также можно удалить знаки “», они добавлены для читаемости текста.
Кроме того, обратите внимание, что в Windows нужно изменить одинарные кавычки на двойные, потому что одинарные кавычки не поддерживаются в терминале Windows по умолчанию.
Вот запрос curl с удаленными символами -H и обратной косой чертой, а одинарные кавычки преобразованы в двойные кавычки:
curl -X GET "https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial&appid=fd4698c940c6d1da602a70ac34f0b147"
- Curl доступен на MacOS по умолчанию. Если на Windows curl еще не установлен, то инструкции по установке по ссылке, нужно выбрать одну из бесплатных версий с правами Администратора.
- Открываем терминал
- на OS Windows нажимаем
ctrl+R
и вводим командуcmd
, Правой кнопкой мыши вызываем меню и выбираем
для вставки запроса. Paste - на MacOS открываем iTerm или терминал, нажимая
cmd+Пробел
и вводим командуTerminal
Вставляем запрос в командную строку и жмем кнопкуEnter
.
- на OS Windows нажимаем
Ответ от OpenWeatherMap на наш запрос будет выглядеть так:
{"coord":{"lon":-121.96,"lat":37.35},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02d"}],"base":"stations","main":{"temp":65.59,"pressure":1014,"humidity":46,"temp_min":60.8,"temp_max":69.8},"visibility":16093,"wind":{"speed":4.7,"deg":270},"clouds":{"all":20},"dt":1522608960,"sys":{"type":1,"id":479,"message":0.1642,"country":"US","sunrise":1522590719,"sunset":1522636280},"id":420006397,"name":"Santa Clara","cod":200}
Этот запрос минимизирован. Вы можете развернуть его, например на сайте JSON pretty print или, на MacOS с установленным Python добавив | python -m json.tool
в конец cURL запроса, чтобы минимизировать JSON в ответе (Для подробностей можно посмотреть ветку на Stack Overflow по этой теме).
- Самостоятельно сделаем curl запрос на 5-дневный прогноз, сохраненный в Postman. И третий API запрос OpenWeatherMap? сохраненный в Postman тоже выполняем в curl
Одинарные и двойные кавычки в запросах curl на Windows
При использовании curl на Windows могут возникнуть проблемы с одинарными и двойными кавычками.
Проблема в том, что содержимое тела запроса часто форматируется в JSON, что требует двойных кавычек. Поскольку вы не можете использовать двойные кавычки внутри других двойных кавычек, вы столкнетесь с проблемами при отправке запросов curl в этих сценариях.
Вот обходной путь. Если нужно отправить содержимое тела в формате JSON, вы можете сохранить содержимое в файле JSON. Затем вы ссылаетесь на файл символом @, например:
curl -H "Content-Type: application/json" -H "Authorization: 123" -X POST -d @mypostbody.json http://endpointurl.com/example
Здесь curl будет искать в существующем каталоге файл mypostbody.json
. (Вы также можете указать полный путь к файлу JSON на вашем компьютере.)
🔙
Go next ➡
Как работать с curl в Windows / Хабр
Curl (client URL) — это инструмент командной строки на основе библиотеки libcurl для передачи данных с сервера и на сервер при помощи различных протоколов, в том числе HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, POP3, POP3S, SMTP и SMTPS. Он очень популярен в сфере автоматизации и скриптов благодаря широкому диапазону функций и поддерживаемых протоколов. В этой статье мы расскажем, как использовать curl в Windows на различных примерах.
▍ Установка в Windows
Во всех современных версиях Windows, начиная с Windows 10 (версия 1803) и Server 2019, исполняемый файл curl поставляется в комплекте, поэтому ручная установка не требуется. Чтобы определить местоположение curl и его версию в системе, можно использовать следующие команды:
where curl curl --version
Определение местоположения и версии curl в Windows
Команда curl —version также выводит список протоколов и функций, поддерживаемых текущей версией curl. Как видно из показанного выше скриншота, к использованию встроенной утилиты curl всё готово. Если вместо этого отображается сообщение об ошибке, curl может быть недоступен потому, что вы используете более раннюю версию Windows (например, Windows 8.
▍ Синтаксис curl
Команда curl использует следующий синтаксис:
curl [options...] [url]
Инструмент поддерживает различные опции, которые мы рассмотрим ниже. Как и в любом инструменте командной строки, вы можете использовать для получения справки команду
Получение справки при помощи команды curl
Для получения подробной справки можно использовать команду curl —help all. Справка разделена на категории, поэтому при помощи curl —help category можно просмотреть все темы.
Ознакомившись с синтаксисом curl, давайте рассмотрим различные способы применения этого инструмента на примерах.
▍ HTTP-запрос GET
При использовании curl с URL и без указания опций запрос по умолчанию использует метод GET протокола HTTP.
curl https://4sysops.com
Приведённая выше команда по сути эквивалентна curl —request GET 4sysops.com, отправляющей запрос GET к 4sysops.com по протоколу HTTPS. Чтобы указать версию протокола HTTP (например, http/2), используйте опцию —http2:
curl --http2 https://4sysops.com
В случае URL, начинающихся с HTTPS, curl сначала пытается установить соединение http/2 и автоматически откатывается к http/1.1, если это не удаётся. Также он поддерживает другие методы, например, HEAD, POST, PUT и DELETE. Для использования этих методов вместе с командой curl нужно указать опцию
▍ Получение информации об удалённом файле
Если вы администратор, то иногда вам могут быть интересны только заголовки HTTP. Их можно получить при помощи опции —head (или -I). Иногда URL может перенаправлять пользователя в другую точку. В таком случае опция —location
curl -kIL 4sysops.com
Опции просмотра заголовков запросов, включения незащищённого соединения и использования перенаправлений
Как можно заметить, такая краткая запись особенно полезна для комбинирования нескольких опций. Приведённая выше команда по сути эквивалентна команде
Опция —head (или -I) также даёт основную информацию об удалённом файле без его скачивания. Как показано на скриншоте ниже, при использовании curl с URL удалённого файла он отображает различные заголовки, дающие информацию об удалённом файле.
curl -IL https://curl.se/windows/dl-7.85.0_5/curl-7.85.0_5-win64-mingw.zip
Использование curl для просмотра основной информации удалённых файлов
Заголовок
▍ Скачивание файла
Для скачивания файла и сохранения с тем же именем, что и на сервере, можно использовать curl с опцией —remote-name (или -O). Показанная ниже команда скачивает последнюю версию curl для Windows с официального сайта:
curl -OL https://curl.se/windows/latest.cgi?p=win64-mingw.zip
Скачивание файла с именем по умолчанию и индикатором прогресса
При необходимости для нахождения ресурса добавляется опция -L, разрешающая перенаправления. Если нужно сохранить файл с новым именем, используйте опцию —output (или -o). Кроме того, при использовании команды curl в скрипте может понадобиться отключить индикатор прогресса, что можно сделать при помощи опции —silent (или -s). Эти две опции можно скомбинировать:
curl -sLo curl.zip https://curl.se/windows/latest.cgi?p=win64-mingw.zip
Скачивание файла без индикатора и сохранение под произвольным именем
▍ Продолжение прерванного скачивания
Наличие Accept-Ranges: bytes в заголовке ответа в буквальном смысле обозначает, что сервер поддерживает скачивания с возможностью продолжения. Чтобы продолжить прерванное скачивание, можно использовать опцию —continue-at (или -C), получающую смещение (в байтах). Обычно указывать смещение непросто, поэтому curl предоставляет простой способ продолжения прерванной загрузки:
curl -OLC - https://releases.ubuntu.com/22.04/ubuntu-22.04.1-desktop-amd64.iso
Продолжение прерванного скачивания
Как видно из скриншота, я скачивал iso-файл Ubuntu, но скачивание было прервано. Затем я снова запустил команду curl с опцией -C, и передача продолжилась с того диапазона байтов, на котором была прервана. Знак минус (—) рядом с -C позволяет curl автоматически определить, как и где продолжить прерванное скачивание.
▍ Аутентификация с Curl
Также Curl поддерживает аутентификацию, что позволяет скачать защищённый файл, предоставив учётные данные при помощи опции —user (or -u), принимающей имя пользователя и пароль в формате username:password. Если не вводить пароль, curl попросит ввести его в режиме no-echo.
curl -u surender -OL https://techtutsonline.com/secretFiles/sample.zip
Скачивание файла с аутентификацией по имени пользователя и паролю
Если вы используете Basic authentication, то необходимо передать имя пользователя и пароль, а значит, воспользоваться защищённым протоколом наподобие HTTPS (вместо HTTP) или FTPS (вместо FTP). Если по каким-то причинам приходится использовать протокол без шифрования, то убедитесь, что вы используете способ аутентификации, не передающий учётные данные в виде простого текста (например, аутентификацию Digest, NTLM или Negotiate).
Также curl поддерживает использование файлов конфигурации .curlrc, _curlrc и .netrc, позволяющих задавать различные опции curl в файле, а затем добавлять файл в команду при помощи опции curl —config (или curl -K), что особенно полезно при написании скриптов.
▍ Выгрузка файла
Опция —upload-file (или -T) позволяет выгружать локальный файл на удалённый сервер. Показанная ниже команда выгружает файл из локальной системы на удалённый веб-сервер по протоколу FTPS:
curl -kT C:\Users\Surender\Downloads\sample1.zip -u testlab\surender ftps://192.168.0.80/awesomewebsite.com/files/
Выгрузка файла на удалённый сервер
Опция -k добавляется для устранения проблем с сертификатами на случай, если веб-сервер использует самоподписанный сертификат. Наклонная черта в конце URL сообщает curl, что конечная точка является папкой. Можно указать несколько имён файлов, например «{sample1.zip,sample2.zip}». Ниже показано, как с помощью одной команды curl можно выгрузить на сервер несколько файлов:
curl -kT sample[1-5].zip -u testlab\surender ftps://192.168.0.80/awesomewebsite.com/files/
Выгрузка нескольких файлов на сервер
▍ Последовательность команд
Как говорилось ранее, curl поддерживает различные методы в зависимости от используемого протокола. Дополнительные команды можно отправлять при помощи —quote (или -Q) для выполнения операции до или после обычной операции curl. Например, можно скачать файл с удалённого сервера по протоколу FTPS и удалить файл с сервера после успешного скачивания. Для этого нужно выполнить следующую команду:
curl -u testlab\surender -kO "ftps://192.168.0.80/awesomewebsite.com/files/sample1.zip" -Q "-DELE sample1.zip"
Удаление файла после успешного скачивания
В показанном выше примере я скачал файл sample1.zip с FTPS-сервера при помощи опции -O. После опции -Q я добавил минус (-) перед командой DELE, что заставляет curl отправить команду DELE sample1.zip сразу после успешного скачивания файла. Аналогично, если вы хотите отправить команду на сервер до выполнения операции curl, используйте плюс (+) вместо минуса.
▍ Изменение user-agent
Информация user-agent сообщает серверу тип клиента, отправляющего запрос. При отправке запроса curl на сервер по умолчанию используется user-agent curl/<version>. Если сервер настроен так, чтобы блокировать запросы curl, можно задать собственный user-agent при помощи опции —user-agent (или -A). Показанная ниже команда отправляет стандартный user-agent Google Chrome:
curl -kIA "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0" https://awesomewebsite.com/files/secretFile.zip
Использование собственного user-agent с командой curl, чтобы избежать блокировки сервером
На показанном выше скриншоте видно, что обычный запрос curl был отклонён веб-сервером (с ответом 403 Forbidden), но при передаче другого user-agent запрос выполняется успешно, возвращая ответ 200 OK.
▍ Отправка куки
По умолчанию запрос curl не отправляет и не сохраняет куки. Для записи куки можно использовать опцию —cookie-jar (или -c), а отправить куки можно опцией —cookie (or -b):
curl -c /path/cookie_file https://awesomewebsite. com/ curl -b /path/cookie_file https://awesomewebsite.com/
Первая команда записывает файл куки, а вторая отправляет куки с запросом curl. Также можно отправить куки в формате ‘name = value’:
curl -b 'session=abcxyz' -b 'loggedin=true' http://echo.hoppscotch.io
Отправка нескольких куки командой curl
Я воспользовался веб-сайтом echo.hoppscotch.io для демонстрации заголовков HTTP-запросов, которые обычно невидимы клиентам, отправляющим запрос. Если вы не хотите пользоваться этим веб-сайтом, то можете применить опцию –verbose (или -v) для отображения запроса в сыром виде (который отображает и заголовки запросов).
▍ Использование прокси-сервера
Если вы пользуетесь прокси-сервером для подключения к интернету, в curl можно указать прокси опцией —proxy (или -x). Если прокси-сервер требует аутентификации, то добавьте —proxy-user (или -U):
curl -x 192. 168.0.250:8088 -U username:password https://awesomewebsite.com/
Прокси-сервер указывается в формате server:port, а пользователь прокси — в формате username:password. Можно не вводить пароль пользователя прокси, тогда curl попросит ввести его в режиме no-echo.
Использование прокси-сервера и аутентификации
▍ Дополнительные заголовки запросов
Иногда вместе с запросом к серверу необходимо отправить дополнительную информацию. В curl это можно сделать при помощи —header (или -H), как показано в следующей команде:
curl -vkIH "x-client-os: Windows 11 Enterprise (x64)" https://awesomewebsite.com
Указание дополнительных заголовков для запроса curl
Можно отправлять любую информацию, недоступную через стандартные заголовки HTTP-запросов. В этом примере я отправил название своей операционной системы. Также я добавил опцию -v для включения verbose-вывода, отображающего дополнительный заголовок, отправляемый вместе с каждым моим запросом curl.
▍ Отправка электронного письма
Так как curl поддерживает протокол SMTP, его можно использовать для отправки электронного письма. Показанная ниже команда позволяет отправить электронное письмо при помощи curl:
curl --insecure --ssl-reqd smtps://mail.yourdomain.com –-mail-from [email protected] –-mail-rcpt [email protected] --user [email protected] --upload-file email_msg.txt
Отправка электронного письма командой curl
Давайте вкратце перечислим использованные здесь опции:
- Опция —insecure (или -k) используется, чтобы избежать ошибки сертификата SSL. Мы уже применяли её ранее.
- Опция —ssl-reql используется для апгрейда соединения передачи простого текста до зашифрованного соединения, если оно поддерживается SMTP-сервером. Если вы уверены, что ваш SMTP-сервер поддерживает SSL, то можно использовать непосредственно имя сервера smtps (например, smtps://smtp.yourdomain.com), как показано на скриншоте.
- Опция —mail-from используется для указания адреса электронной почты отправителя.
- Опция mail-rcpt указывает адрес электронной почты получателя.
- Опция —user (или -u) отправляет имя пользователя для аутентификации, оно должно совпадать с адресом mail-from, потому что в противном случае письмо может быть отклонено или помечено как спам.
- Опция —upload-file (или -T) используется для указания файла, в котором находится отправляемое письмо.
На скриншоте ниже показано письмо, полученное мной во входящие:
Просмотр письма, отправленного с помощью curl
Это всего лишь несколько примеров использования curl — на самом деле их гораздо больше. Я настоятельно рекомендую проверить справку по curl и поэкспериментировать с ней.
А вы используете curl? И если да, то для чего?
Telegram-канал с полезностями и уютный чат
запросов на скручивание · PyPI
Библиотека для преобразования объекта запросов python в команду curl.
Описание проекта
Преобразование объекта запросов python в команду cURL.
Этот репозиторий улучшен на основе curlify. Поскольку curlify больше не обновляется, никто не ответил на предоставленный мной PR, поэтому этот репозиторий был создан.
Установка
pip install request_to_curl
Использование
>>> импортный завиток
>>> импорт запросов
>>>
>>> ответ = запросы.получить("https://lulaolu.com")
>>>
>>> curl.parse(ответ) # стандартный вывод
curl -X GET -H 'Принять: */*' -H 'Принять-кодировку: gzip, deflate' -H 'Соединение: поддерживать активность' -H 'Агент пользователя: python-requests/2. 27.1' https: //lulaolu.com:443/
Если вы хотите получить строку curl в проекте кода, используйте return_it
>>> c = curl.parse(response, return_it=True)
>>> печатать(с)
Если вы хотите скрыть стандартный вывод, используйте print_it=False
>>> c = curl.parse(response, print_it=False)
Вы также можете использовать r2c
или request_to_curl
вместо curl
>>> import r2c
>>> r2c.parse(ответ) # хорошо!
>>>
>>> импорт запросов_to_curl
>>> request_to_curl.parse(response) # хорошо!
Детали проекта
Эта версия
1.1.0
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
Загрузить файлы
Загрузить файл для вашей платформы. Если вы не уверены, что выбрать, узнайте больше об установке пакетов.
Исходный дистрибутив
request_to_curl-1.1.0.tar.gz (5,2 КБ посмотреть хеши)
Загружено источник
Закрывать
Хэши для request_to_curl-1.
1.0.tar.gzАлгоритм | Хэш-дайджест | |
---|---|---|
ША256 | 04e5ebeec91b36c0517a2ef418c33620d835ebabd8b3f08bd617b0d0a9efcd50 | |
MD5 | c59cb03c53ce0cde2fbe6cd2e08e9b1f | |
БЛЕЙК2б-256 | cff43f6e6e87cf2de47bcddab1859378f6452cff98ec2a21ae0348300677aae4 |
Что такое команда cURL? [+ Как использовать]
Как действующий (или начинающий) веб-разработчик, есть большая вероятность, что вы знакомы с HTTP-запросами, особенно при взаимодействии с API.
Платформы API могут быть полезны для автоматизации вызовов запросов и создания более сложных запросов. Но иногда, независимо от того, выполняете ли вы одноразовый тест или какую-то отладку, вы хотите запустить быстрый HTTP-запрос со своего терминала.
Для таких ситуаций cURL — один из лучших бесплатных инструментов веб-разработки, который должен быть у каждого разработчика.
В этой статье мы познакомимся с командой cURL, рассмотрим, как и почему она используется, а также продемонстрируем некоторые распространенные примеры команд cURL и сценарии их использования.
Что такое команда cURL?
URL-адрес клиента (cURL, произносится как «завиток») — это инструмент командной строки, который обеспечивает обмен данными между устройством и сервером через терминал. Используя этот интерфейс командной строки (CLI), пользователь указывает URL-адрес сервера (место, куда он хочет отправить запрос) и данные, которые он хочет отправить на этот URL-адрес сервера.
Инструменты API, такие как Postman и Insomnia, предоставляют интерактивный пользовательский интерфейс (UI), который позволяет выполнять различные формы запросов к URL-адресам для получения и обработки запросов. Команда cURL делает то же самое, только в вашем терминале. cURL работает на Linux, Mac и Windows.
Команда cURL использует клиентскую библиотеку передачи URL-адресов libcURL. Эта библиотека поддерживает множество различных протоколов передачи, включая HTTPS, SMTP и FTP. Он также позволяет включать файлы cookie, устанавливать прокси-серверы и добавлять учетные данные для аутентификации при выполнении запросов.
Варианты использования cURL включают тестирование API, загрузку данных из источников, тестирование веб-сайтов и последующие перенаправления с терминала.
Как использовать cURL
Вы знаете, что такое команда cURL, но как она работает?
cURL предустановлен в Windows и macOS — в противном случае вы можете загрузить пакет с веб-сайта cURL.
Команда cURL получает URL-адрес для передачи или получения данных вместе с другими параметрами для различных целей.
Синтаксис команды cURL:
cURL [параметры] [URL]
В этой статье для объяснения различных способов использования cURL используется JSONPlaceholder Fake API. Этот фиктивный API содержит различные примеры путей для выполнения запросов.
Запрос данных из источника
Используя метод GET с cURL, вы можете быстро запрашивать данные из источника или API. Вот простая команда cURL, которая выполняет запрос GET :
cURL https://jsonplaceholder.typicode.com/todos/1
Без передачи каких-либо флагов или параметров команда cURL по умолчанию создает GET запрос на указанный URL. Команда возвращает тело ответа, отправленное из API, которое будет выглядеть в вашем терминале так:
{ «идентификатор пользователя»: 1, «идентификатор»: 1, «title»: «delectus aut autem», «завершено»: ложь }Это похоже на результаты таких платформ, как Postman, показанные ниже:
Кроме того, вы можете включить параметры и значения для использования другого метода запроса с помощью команды cURL. Например, вы можете использовать параметр -X (дефис и X в верхнем регистре) с методом запроса. Параметр -X является псевдонимом для —request .
Напишите команду следующим образом:
cURL -X [METHOD] [URL]
Метод GET по умолчанию в первой команде cURL выше выглядит следующим образом:
cURL -X GET https://jsonplaceholder.typicode.com /todos/1
Отправка данных в источник
Используя метод POST и команду cURL, вы можете передавать данные на сервер через API. API обрабатывает данные, затем выполняет такие действия, как сохранение их в базе данных, и возвращает ответ, указывающий статус вашего запроса.
Чтобы выполнить запрос POST к URL-адресу, используйте параметр -X и передайте метод POST в качестве значения. Но как насчет добавления данных с запросом? Вы используете другой параметр, -d (дефис и нижний регистр d), который является псевдонимом для —data .
Вы можете использовать два популярных формата данных при отправке данных с запросом: application/x-www-form-urlencoded или application/json . Далее мы рассмотрим оба этих метода.
application/x-www-form-URLEncodedЕсли вы не укажете нужный формат, cURL по умолчанию использует application/x-www-form-urlencoded . Вот пример использования этого формата и поддельного API JSON:
cURL -X POST -d «name=cURL&type=article» https://jsonplaceholder.typicode.com/posts
Эта команда отправляет запрос POST . на https://jsonplaceholder.typicode.com/posts и передает закодированные данные URL «name= cURL &type=article» , который является ключом имени со значением cURL и ключом типа со значением статьи.
Для запросов POST , сделанных к JSON Fake API, телом ответа является объект данных, отправленный ему вместе со свойством ID.
Вот тело ответа от API после ввода команды:
{ «имя»: «cURL», «тип»: «статья», «идентификатор»: 101 }application/JSON
С помощью cURL вы также можете отправить строковый объект JSON следующим образом:
cURL -X POST -d ‘{«name»: «cURL», «type»: «article»}’ https://jsonplaceholder.typicode.com/posts
Как описано выше, данные в этом запрос отправляется в формате application/x-www-form-urlencoded . Вот результат API:
{ «{\»название\»: \»cURL\», \»тип\»: \»статья\»}»: «», «идентификатор»: 101 }API понимает, что данные запроса находятся в формате данных в кодировке URL, поэтому интерпретирует их не так, как вы ожидаете. Вы должны указать, что это формат данных JSON, используя параметр 9.0196 -H (дефис с прописной буквой H), псевдоним для —header и передача заголовка Content-Type следующим образом:
cURL -X POST -d ‘{«name»: » cURL», «type»: «article»}’ -H «Content-Type: application/json» https://jsonplaceholder. typicode.com/posts
Теперь вы получаете правильное тело ответа от API:
{ «имя»: «cURL», «тип»: «статья», «идентификатор»: 101 }Вместо ввода строки JSON в терминале вы можете указать файл JSON, который команда cURL будет использовать для параметра данных. Например, предположим, что у вас есть файл с именем data.json со следующим содержимым:
{ «имя»: «cURL», «тип»: «статья» }Вы можете запустить команду cURL, если она находится в том же проекте, что и файл. Эта команда получит файл JSON, преобразует его в строку и отправит вместе с запросом. Вы получите тот же результат, что и выше:
{ «имя»: «cURL», «тип»: «статья» }Удаление ресурсов на сервере
Вы можете отправлять запросы на удаление в API, используя метод DELETE и команду cURL. URL-адрес и данные, которые вы предоставляете в этом запросе, зависят от конфигурации API.
Для JSON Fake API вы указываете путь к ресурсу и метод DELETE следующим образом:
cURL -X DELETE https://jsonplaceholder. typicode.com/posts/1
Тело ответа является пустым объектом:
Лучше всего подходит для обновления существующих ресурсов с помощью API
Используя метод PUT и команду cURL, вы можете выполнять запросы «обновления» к API, которые изменяют существующий ресурс. Для JSON Fake API вы указываете путь к ресурсу и PUT и передать некоторые данные для обновления ресурса.
Здесь можно использовать любой формат данных. В этом примере используется application/json :
cURL -X PUT -d ‘{«name»: «json», «type»: «post»}’ -H «Content-Type: application/json» https: //jsonplaceholder.typicode.com/posts/1
Необходимо напрямую указать формат данных в заголовке, чтобы API смог правильно интерпретировать запрос.
Приведенный выше код возвращает тело ответа:
{ «имя»: «json», «тип»: «пост», «идентификатор»: 1 }Протоколы и форматы cURL
По умолчанию cURL использует протокол HTTP. Вот некоторые другие протоколы и форматы, которые может использовать cURL:
Протокол передачи файлов
Протокол передачи файлов (FTP) передает файлы с сервера на клиент. Используйте этот протокол с cURL для загрузки файлов следующим образом:
cURL -T [выбранный-файл] «ftp://[целевой-назначение]»
cURL является хорошей заменой стандартному FTP-клиенту.
Простой протокол передачи почты
Простой протокол передачи почты (SMTP) предназначен для отправки данных на SMTP-сервер. Эти данные состоят из текста, который вы отправляете, отправителя и получателя. Это выглядит так:
cURL smtp://[smtp-sever] —mail-from [отправитель] —mail-rcpt \ [получатель] —upload-file [mail-content-file]
Сетевой протокол словаря
Сетевой протокол словаря (DICT) обеспечивает доступ к словарям. Используя его с cURL, вы запускаете следующую команду:
cURL «dict://dict. org/d:hello»
С помощью этой команды вы получите результат, показывающий выбранный словарь и значение «привет» из словаря.
Дополнительные протоколы можно найти на справочной странице cURL.
Общие варианты использования cURL
Хотя платформы API обычно предоставляют интуитивно понятные интерфейсы для запроса и передачи данных по URL-адресу, cURL может быть отличным инструментом для использования с терминалом. Вот несколько распространенных вариантов использования команды cURL.
Быстрое тестирование API из терминала
Как мы видели, cURL позволяет вам быстро тестировать API из вашего терминала без необходимости загружать какое-либо приложение на основе API.
Загрузка изображений и файлов на устройство
Поскольку терминал имеет доступ к файловой системе, вы также можете легко загружать изображения с URL-адресов.
Например, вот URL-адрес логотипа Google. Используя cURL, вы можете загрузить изображение следующим образом:
cURL https://www. google.com/images/branding/googlelogo/2x/googlelogo_light_color_272x92dp.png > google-logo.png
Использование cURL и URL-адреса изображения возвращает двоичные данные изображения. Сохранив необработанные данные изображения в файле изображения (с расширением .png, соответствующим расширению исходного изображения), вы можете сохранить изображение на своем устройстве.
Сохранение содержимого URL-адреса
Как и при загрузке изображений, вы также можете сохранить содержимое URL-адреса (например, веб-страницы) в файл. Вот пример для главной страницы Google:
cURL -o google.html https://www.google.com
При этом исходный код главной страницы Google сохраняется в файл с именем google.html.
Заставьте cURL работать на вас.
cURL — это инструмент командной строки, который позволяет запрашивать и передавать данные по URL-адресу по различным протоколам. Это дает вам гибкость и контроль над URL-адресами на терминале.