Как да използвате cURL публикационни данни от файл

How Use Curl Post Data From File



cURL е безплатна помощна програма за командния ред с отворен код, използвана за прехвърляне на данни към или от отдалечен хост с минимално взаимодействие с потребителя. cURL работи с първични протоколи като HTTP, FTP, SCP и SFTP.

Тя позволява на потребителите да качват и изтеглят данни или чрез единични команди, или чрез bash скриптове. Той също така предоставя функции като удостоверяване на потребителя, тунелиране на прокси сървъри, автобиография за изтегляне, качване на базата на формуляри, SSL сертификати и много други. Безопасно е да се каже, че cURL е нещо повече от HTTP клиент.







Този урок ще ви преведе през една cURL функционалност, която позволява на потребителите да изпълняват HTTP заявки за публикации, използвайки файлови данни.



Преди да започнем, нека спомена, че това не е ръководство за начинаещи по cURL; имате нужда от степен на предварително ноу-хау, особено познаване на мрежовите протоколи, HTTP заявки и др.



Преди да можем да се потопим в използването на cURL за изпълнение на POST заявки, нека първо да настроим.





Как да инсталирате cURL

В повечето случаи по подразбиране ще намерите cURL инсталиран в големи дистрибуции на Linux. За да потвърдите, че имате cURL, използвайте командата

curl –- помощ

Ако получите грешка:



-bash: curl:командане е намерен

Ще трябва да го инсталирате, преди да продължите.

Използвайте мениджъра на пакети по подразбиране, за да завършите инсталацията, както е показано в командите по -долу:

sudo apt-get update

sudo apt-get installкъдрица

Преди да обсъдим как да POST данни от файл с cURL, позволете ми да говоря накратко за POST заявката. Както обикновено, ако вече сте запознати с това, можете да се чувствате свободни да прескочите напред; в противен случай се придържайте.

cURL POST заявка

Искането за публикуване на HTTP е един от най -популярните методи за заявка на HTTP/HTTPS, използван за изпращане на данни до отдалечен хост за създаване или актуализиране на ресурс.

Сега :

Моля, не бъркайте метода с PUT; въпреки че са доста сходни, те имат своите различия.

Данните, изпратени чрез POST заявка, се съхраняват главно в тялото на заявката на HTTP заявката.

Например, помислете за по -долу POST заявка, която изпраща потребителско име и парола, както и техните стойности.

POST/ограничен/login.php HTTP/1.1Водещ: linuxhint.com Тип съдържание: приложение/x-www-form-urlencodedпотребителско име= linuxhint&парола= парола

За да изпратим горната POST заявка с помощта на cURL, можем да посочим командите като:

къдрицаPOST потребителско име= linuxhint&парола= парола https://linuxhint.com/ограничен/login.php

В горната команда използвахме опцията -d, за да кажем на cURL да включва заглавките по подразбиране, което е Content-Type: application/x-www-form-urlencoded

Опцията -X определя метода на HTTP заявка, който да се използва, в този случай HTTP POST заявка.

cURL Задайте тип съдържание

В някои случаи може да искаме да посочим [изрично] Content-Type при изпращане на заявката. Същността Content-Type в заглавката определя типа носител на ресурса, който изпращаме. Типът носител е известен също като MIME тип.

Ако искате да научите за типовете MIME, помислете за предоставения по -долу ресурс:

https://linkfy.to/IANA-MIME-Types

За да посочим Content -Type в cURL заявка, можем да използваме флага -H. Например, нека изпратим MIME Тип приложение/JSON.

къдрицаPOST {потребителско име: linuxhint, парола: парола} Тип съдържание: приложение/json https://linuxhint.com/ограничен/login.php

Горното уточнява, че искаме да изпратим JSON обект на предоставения URL адрес. Можете да използвате това, за да прочетете стойностите от JSON файл или да го изпратите като необработен.

Как да четете данни от файл

Да предположим, че искате да правите заявки в командния ред с помощта на cURL, но имате данни за изпращане, съхранени във файл. Можете да използвате Content-Type, за да посочите типа на носителя и след това да предадете пътя на файла, съдържащ данните. За този пример ще илюстрирам с помощта на JSON обект.

JSON файлът (data.json) съдържа следните стойности:

{
„потребителско име“:'linuxhint',
'парола':'парола'
}

За да изпратим тези данни от JSON файл, можем да използваме -d и след това да предадем името на файла, както е показано в командата по -долу:

къдрицаPOSTТип съдържание: приложение/json @data.json https://linuxhint.com/ограничен/login.php

Можете също да използвате опцията –data-binary.

къдрицаPOSTТип съдържание: приложение/json--data-binary @ /У дома/потребител/data.json https://linuxhint.com/ограничен/login.php

Можете също да използвате текстов файл за изпращане на данните; всичко, което трябва да посочите, е Content-Type като текст/обикновен.

Например текстов файл (data.txt), съдържащ следните стойности

потребителско име= linuxhint&парола= парола

Използвайки командата cURL, просто изпратете заявката като:

къдрицаPOSTТип съдържание: текст/обикновенdata.txt https://linuxhint.com/ограничен/login.php

Можете да използвате други типове файлове, които можете да използвате, като XML, HTML и много други.

Заключение

В този урок обсъдихме как да правите POST заявки и да предавате данни в различни формати. Добре е да имате предвид, че освен че е много мощен, cURL е и много гъвкав. Той може да комбинира колекция от опции в една команда, за да създава мощни заявки. За повече информация препоръчвам документацията на cURL, тъй като е добре написана.

https://curl.se/docs/

Благодарим ви за четенето и се забавлявайте с cURL.