cURL е безплатна програма с команден ред с отворен код, използвана за прехвърляне на данни към или от отдалечен хост с минимално взаимодействие с потребителя. cURL работи с първични протоколи като HTTP, FTP, SCP и SFTP.
Позволява на потребителите да качват и изтеглят данни или с помощта на единични команди, или баш скриптове. Той също така предоставя функции като удостоверяване на потребителя, тунелиране на прокси сървъри, автобиография за изтегляне, качване въз основа на формуляри, SSL сертификати и много други. Безопасно е да се каже, че cURL е повече от HTTP клиент.
Този урок ще ви преведе през една cURL функционалност, която позволява на потребителите да изпълняват HTTP заявки за публикации, използвайки файлови данни.
Преди да започнем, нека спомена, че това не е ръководство за начинаещи за cURL; имате нужда от известна степен на предварително ноу-хау, особено познания за мрежови протоколи, HTTP заявки и др.
Преди да можем да се потопим в използването на cURL за изпълнение на POST заявки, нека първо вземем настройка.
Как да инсталирам cURL
В повечето случаи по подразбиране ще намерите инсталиран cURL в основните дистрибуции на Linux. За да потвърдите, че имате cURL, използвайте командата
къдряне --помощАко получите грешка:
-bash: curl: командата не е намеренаЩе трябва да го инсталирате, преди да продължите.
Използвайте мениджъра на пакети по подразбиране, за да завършите инсталацията, както е показано в командите по-долу:
sudo apt-get updatesudo apt-get install curl -y
Преди да обсъдим как да POST данни от файл с cURL, позволете ми да говоря за POST заявката накратко. Както обикновено, ако вече сте запознати с това, можете спокойно да прескочите напред; в противен случай се придържайте.
Изискване за CURL POST
Заявката за HTTP публикация е един от най-популярните методи за HTTP / HTTPS заявки, използвани за изпращане на данни към отдалечен хост за създаване или актуализиране на ресурс.
Сега:
Моля, не бъркайте метода с PUT; въпреки че са доста сходни, те имат своите различия.
Данните, изпратени с помощта на POST заявка, се съхраняват основно в тялото на заявката на HTTP заявката.
Например, вземете под внимание заявката по-долу POST, която изпраща потребителско име и парола, както и техните стойности.
POST / ограничено / влизане.php HTTP / 1.1 домакин: linuxhint.com Content-Type: application / x-www-form-urlencoded потребителско име = linuxhint & password = паролаЗа да изпратим горната POST заявка с помощта на cURL, можем да посочим командите като:
curl -x POST -d “потребителско име = linuxhint & парола = парола” https: // linuxhint.com / ограничен / вход.phpВ горната команда използвахме опцията -d, за да кажем на cURL да включи заглавията по подразбиране, което е Content-Type: application / x-www-form-urlencoded
Опцията -X указва метода на HTTP заявка, който да използва, в този случай, HTTP POST заявка.
cURL Посочете тип съдържание
В някои случаи може да поискаме да посочим [изрично] Content-Type при изпращане на заявката. Обектът Content-Type в заглавката указва типа носител на ресурса, който изпращаме. Типът носител е известен също като MIME тип.
Ако искате да научите за типовете MIME, помислете за предоставения по-долу ресурс:
https: // linkfy.към / IANA-MIME-типове
За да посочим Content-Type в заявка за cURL, можем да използваме флага -H. Например, нека изпратим MIME Тип на приложението / JSON.
curl -X POST -d „потребителско име“: „linuxhint“, „парола“: „парола“ -H „Тип съдържание: application / json“ https: // linuxhint.com / ограничен / вход.phpГорното посочва, че искаме да изпратим JSON обект към предоставения URL адрес. Можете да използвате това, за да прочетете стойностите от JSON файл или да го изпратите като суров.
Как да четем данни от файл
Да предположим, че искате да правите заявки в командния ред с помощта на cURL, но имате данни за изпращане, съхранени във файл. Можете да използвате Content-Type, за да укажете типа на носителя и след това да предадете пътя на файла, съдържащ данните. За този пример ще илюстрирам използването на JSON обект.
JSON файлът (данни.json) съдържа следните стойности:
"потребителско име": "linuxhint",
"парола": "парола"
За да изпратим тези данни от JSON файл, можем да използваме -d и след това да предадем името на файла, както е показано в командата по-долу:
curl -X POST -H “Content-Type: application / json” -d “@data.json ”https: // linuxhint.com / ограничен / вход.phpМожете също да използвате опцията -data-binary.
curl -X POST -H “Content-Type: application / json” --data-binary “@ / home / user / data.json ”https: // linuxhint.com / ограничен / вход.phpМожете също да използвате текстов файл за изпращане на данните; всичко, което трябва да посочите, е Content-Type като text / plain.
Например текстов файл (данни.txt), съдържащ следните стойности
потребителско име = linuxhint & парола = паролаИзползвайки командата cURL, просто изпратете заявката като:
curl -X POST -H “Content-Type: text / plain” -d “данни.txt ”https: // linuxhint.com / ограничен / вход.phpМожете да използвате други типове файлове, които можете да използвате, като XML, HTML и много други.
Заключение
В този урок обсъдихме как да правим POST заявки и да предаваме данни в различни формати. Добре е да имате предвид, че освен че е много мощен, cURL е и много гъвкав. Той може да комбинира колекция от опции в една команда, за да създаде мощни заявки. За повече информация препоръчвам документацията за cURL, тъй като е добре написана.
https: // curl.se / docs /
Благодаря ви, че четете и се забавлявайте с curl.