cURL to bezpłatne narzędzie wiersza poleceń o otwartym kodzie źródłowym służące do przesyłania danych do lub ze zdalnego hosta przy minimalnej interakcji użytkownika. cURL działa z podstawowymi protokołami, takimi jak HTTP, FTP, SCP i SFTP.
Umożliwia użytkownikom przesyłanie i pobieranie danych za pomocą pojedynczych poleceń lub skryptów bash. Zapewnia również funkcje, takie jak uwierzytelnianie użytkowników, tunelowanie proxy, wznawianie pobierania, przesyłanie oparte na formularzach, certyfikaty SSL i wiele więcej. Można śmiało powiedzieć, że cURL to coś więcej niż klient HTTP.
Ten samouczek przeprowadzi Cię przez jedną funkcję cURL, która pozwala użytkownikom wykonywać żądania HTTP post przy użyciu danych z pliku file.
Zanim zaczniemy, wspomnę, że nie jest to przewodnik po cURL dla początkujących; potrzebujesz pewnej wiedzy, w szczególności znajomości protokołów sieciowych, żądań HTTP i nie tylko.
Zanim będziemy mogli zagłębić się w używanie cURL do wykonywania żądań POST, najpierw zajmijmy się konfiguracją.
Jak zainstalować cURL
W większości przypadków cURL jest domyślnie instalowany w głównych dystrybucjach Linuksa. Aby potwierdzić, że masz cURL, użyj polecenia
curl --pomocJeśli pojawi się błąd:
-bash: curl: nie znaleziono poleceniaMusisz go zainstalować przed kontynuowaniem.
Użyj domyślnego menedżera pakietów, aby zakończyć instalację, jak pokazano w poniższych poleceniach:
aktualizacja sudo apt-getsudo apt-get zainstaluj curl -y
Przed omówieniem sposobu POST danych z pliku z cURL, pozwól mi omówić pokrótce żądanie POST. Jak zwykle, jeśli już to znasz, możesz przejść dalej; w przeciwnym razie pozostań w pobliżu.
cURL Żądanie POST
Żądanie HTTP post jest jedną z najpopularniejszych metod żądań HTTP/HTTPS używanych do wysyłania danych do zdalnego hosta w celu utworzenia lub aktualizacji zasobu.
Teraz:
Proszę nie mylić metody z PUT; chociaż są dość podobne, mają swoje różnice.
Dane wysyłane za pomocą żądania POST są przechowywane głównie w treści żądania HTTP HTTP.
Rozważmy na przykład poniższe żądanie POST, które wysyła nazwę użytkownika i hasło, a także ich wartości.
POST /zastrzeżony/logowanie.php HTTP/1.1 Host: linuxhint.com Content-Type: application/x-www-form-urlencoded username=linuxhint&password=passwordAby wysłać powyższe żądanie POST za pomocą cURL, możemy określić polecenia jako:
curl -x POST -d „nazwa użytkownika=linuxhint&hasło=hasło” https://linuxhint.com/zastrzeżone/logowanie.phpW powyższym poleceniu użyliśmy opcji -d, aby poinformować cURL, aby zawierał domyślne nagłówki, czyli Content-Type: application/x-www-form-urlencoded
Opcja -X określa metodę żądania HTTP do użycia, w tym przypadku żądanie HTTP POST.
cURL Określ typ zawartości
W niektórych przypadkach możemy chcieć określić [jasno] Content-Type podczas wysyłania żądania. Encja Content-Type w nagłówku określa typ nośnika zasobu, który wysyłamy. Typ nośnika jest również powszechnie znany jako typ MIME.
Jeśli chcesz dowiedzieć się więcej o typach MIME, rozważ zasób podany poniżej:
https://linkfy.do/IANA-MIME-Types
Aby określić Content-Type w żądaniu cURL, możemy użyć flagi -H. Na przykład wyślijmy typ MIME aplikacji/JSON.
curl -X POST -d „nazwa użytkownika”: „linuxhint”, „hasło”: „hasło” -H „Content-Type: application/json” https://linuxhint.com/zastrzeżone/logowanie.phpPowyższe określa, że chcemy wysłać obiekt JSON na podany adres URL. Możesz użyć tego do odczytania wartości z pliku JSON lub wysłania go jako surowego.
Jak czytać dane z pliku from
Załóżmy, że chcesz wysyłać żądania w wierszu poleceń za pomocą cURL, ale masz dane do wysłania zapisane w pliku. Możesz użyć Content-Type, aby określić typ nośnika, a następnie przekazać ścieżkę do pliku zawierającego dane. W tym przykładzie zilustruję za pomocą obiektu JSON.
Plik JSON (dane.json) zawiera następujące wartości:
"nazwa użytkownika": "linuxhint",
"hasło": "hasło"
Aby wysłać te dane z pliku JSON, możemy użyć -d, a następnie przekazać nazwę pliku, jak pokazano w poniższym poleceniu:
curl -X POST -H „Typ treści: aplikacja/json” -d „@data.json” https://linuxhint.com/zastrzeżone/logowanie.phpMożesz także użyć opcji -data-binary.
curl -X POST -H "Content-Type: application/json" --data-binary "@/home/user/data.json” https://linuxhint.com/zastrzeżone/logowanie.phpMożesz również użyć pliku tekstowego do wysłania danych; wszystko, co musisz określić, to Content-Type jako tekst/zwykły.
Na przykład plik tekstowy (dane.txt) zawierający następujące wartości
username=linuxhint&password=hasłoUżywając polecenia cURL, po prostu wyślij żądanie jako:
curl -X POST -H „Typ treści: tekst/zwykły” -d „dane.txt” https://linuxhint.com/zastrzeżone/logowanie.phpMożesz używać innych typów plików, takich jak XML, HTML i wiele innych.
Wniosek
W tym samouczku omówiliśmy, jak tworzyć żądania POST i przekazywać dane w różnych formatach. Warto pamiętać, że cURL jest nie tylko bardzo potężny, ale także bardzo elastyczny. Może łączyć zbiór opcji w jednym poleceniu, aby tworzyć potężne żądania. Aby uzyskać więcej informacji, polecam dokumentację cURL, ponieważ jest dobrze napisana.
https://curl.se/dokumenty/
Dziękuję za przeczytanie i baw się dobrze z cURL.