Инструментът за команден ред curl е идеален помощник, когато работите с HTTP код. Тествайте заявки, изследвайте формати на данни и още!

Протоколът за трансфер на хипертекст (HTTP) е гръбнакът на комуникацията през Интернет, позволяващ трансфер на данни между сървъри и клиенти. Взаимодействието с HTTP крайни точки обаче може да бъде предизвикателство, особено за начинаещи.

За щастие, curl, инструмент от командния ред, предоставя лесен и ефективен начин за изпращане и получаване на HTTP заявки. Тук ще научите как да използвате curl, за да направите основни HTTP заявки POST, GET, DELETE и PUT.

Инсталиране на къдрици

По подразбиране curl е инсталиран на основните операционни системи, включително macOS, Linux и Unix.

Можете да потвърдите, че сте инсталирали curl, като изпълните командата по-долу:

къдрица

Командата по-горе трябва да отпечата „опитайте 'curl --help' или 'curl --manual' за повече информация” на вашия терминал.

Ако curl не е инсталиран на вашата операционна система, можете да го изтеглите и инсталирате от страницата за изтегляне на curl.

instagram viewer

Създаване на HTTP GET заявка

HTTP GET заявката е метод за изискване на данни от уеб сървър. Можете да използвате тези заявки, за да извлечете конкретен ресурс, като например уеб страница, изображение или видео.

Можете да направите GET заявка с curl във формата по-долу:

curl -X GET 

Сменете с URL адреса на ресурса, който искате да извлечете.

Например:

curl -X GET https://example.com/todos/1

Изпълнението на горната команда прави HTTP GET заявка към URL адреса https://example.com/todos/1. The -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 POST -d 

Например:

curl -X POST -d 'name=jack' -d '[email protected]' \
 https://example.com/users

Горната команда изпраща POST заявка до https://example.com/users с данните, посочени от флаг като полезен товар.

The флаг указва данните за изпращане. В този случай той посочи два параметъра на данните: име=жак и [email protected].

Когато използвате флаг повече от веднъж в команда, можете да обедините полетата, като използвате символа &.

Например:

curl -d "name=jack&[email protected]" https://example.com/api/users

Някои данни, които може да опитате да изпратите в POST заявка, може да е трудно да се поберат в един низ във вашия терминал. В случаи като този може да е идеално да прочетете и POST данните от файл с помощта на curl.

За да изпратите данни от файл в POST заявка като полезен товар с curl, използвайте @ подпишете веднага след флаг, последван от пътя на файла до файла, който искате curl да изпрати в заявката.

Например:

curl -X POST -d @users.txt https://example.com/api/users

Указване на Content-Type

Използвайки флаг автоматично задава заглавката Content-Type на приложение/x-www-form-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 "Content-Type: application/json" \
 -d '{"име": "Джак Бауер", "имейл": "[email protected]"}' \
 https://example.com/api/users/4

Горната команда изпраща PUT заявка във формат JSON до уеб сървъра, посочен в URL адреса по-горе, и актуализира посочения ресурс. Ако указаният ресурс не съществува, той ще създаде ресурса на уеб сървъра.

Правене на заявка за HTTP DELETE

Заявката за HTTP DELETE е метод за изтриване на определен ресурс от уеб сървър. Подобно на заявките PUT, заявките DELETE са идемпотентни. Изпращането на една и съща заявка за ИЗТРИВАНЕ няколко пъти до един и същ ресурс ще доведе до същия резултат на сървъра.

Можете да направите заявка за ИЗТРИВАНЕ с curl, като изпълните командата по-долу:

curl -X ИЗТРИВАНЕ http://example.com/api/users/3

Командата по-горе изпраща заявка за ИЗТРИВАНЕ към уеб сървъра, посочен в URL адреса по-горе, и изтрива посочения ресурс.

Заявките за изтриване премахват за постоянно посочения ресурс от сървъра. По този начин уеб сървър, който поддържа DELETE, обикновено изисква форма на удостоверяване или оторизация преди да можете да направите тази заявка.

Ето как да направите заявка за ИЗТРИВАНЕ със заглавка за оторизация:

curl -X DELETE -H "Упълномощаване: Носител my_access_token" \
 https://example.com/api/users/3

Командата по-горе предоставя информацията за удостоверяване в заглавката на заявката, като използва метода за удостоверяване на носителя с знаме. Упълномощаване: Носител my_access_token е стойността на заглавката. my_access_token е контейнер за вашата действителна стойност на токена за достъп.

Други начини, по които можете да правите HTTP заявки

Освен curl, има много начини да правите HTTP заявки в зависимост от контекста на заявката. Най-често срещаните методи включват използване на уеб браузър като Chrome, GUI инструмент като Postman или API клиент.

Всяка от тези опции идва със своите предимства и компромиси. В крайна сметка вашият избор на инструмент ще зависи от изискванията на вашата задача.