Narzędzie wiersza poleceń curl jest doskonałym pomocnikiem podczas pracy z kodem HTTP. Testuj żądania, eksploruj formaty danych i nie tylko!
Hypertext Transfer Protocol (HTTP) jest podstawą komunikacji w Internecie, umożliwiając przesyłanie danych między serwerami i klientami. Jednak interakcja z punktami końcowymi HTTP może być trudna, szczególnie dla początkujących.
Na szczęście curl, narzędzie wiersza poleceń, zapewnia łatwy i wydajny sposób wysyłania i odbierania żądań HTTP. Tutaj dowiesz się, jak używać curl do wykonywania podstawowych żądań HTTP POST, GET, DELETE i PUT.
Instalowanie curla
Domyślnie curl jest instalowany w głównych systemach operacyjnych, w tym macOS, Linux i Unix.
Możesz potwierdzić, że masz zainstalowane curl, uruchamiając poniższe polecenie:
kędzior
Powyższe polecenie powinno wydrukować „wypróbuj 'curl --help' lub 'curl --manual', aby uzyskać więcej informacji” na twoim terminalu.
Jeśli curl nie jest zainstalowany w twoim systemie operacyjnym, możesz go pobrać i zainstalować z strona pobierania curl.
Wykonywanie żądania HTTP GET
Żądanie HTTP GET to metoda żądania danych z serwer WWW. Możesz użyć tych żądań, aby pobrać określony zasób, taki jak strona internetowa, obraz lub wideo.
Możesz wykonać żądanie GET za pomocą curl w poniższym formacie:
zwijanie -X GET
Zastępować z adresem URL zasobu, który chcesz pobrać.
Na przykład:
zwijanie -X GET https://example.com/todos/1
Uruchomienie powyższego polecenia powoduje wysłanie żądania HTTP GET do adresu URL https://example.com/todos/1. The -X POBIERZ opcja określa, że metodą HTTP jest GET. Po uruchomieniu polecenia curl wysyła żądanie GET do serwera określonego w adresie URL i czeka na odpowiedź serwera.
Jeśli serwer odpowie z pomyślny kod stanu, kędzior wyświetla treść odpowiedzi w terminalu, która w tym przypadku byłaby danymi JSON dotyczącymi elementu do wykonania o identyfikatorze 1.
Alternatywnie możesz wykonać żądanie GET bez określania pliku -X flaga, ponieważ domyślnie curl wysyła żądanie GET, gdy nie określisz metody żądania za pomocą -X flaga.
Na przykład:
kędzior https://example.com/todos/1
Uruchomienie powyższego polecenia zwróci taką samą odpowiedź jak poprzednie polecenie z „-X POBIERZ" flaga.
Wykonywanie żądania HTTP POST
Żądanie HTTP POST to metoda zapisywania danych na serwerze WWW. W przeciwieństwie do żądania GET, które wysyła dane jako część adresu URL, żądanie POST wysyła dane w treści żądania. Dzięki temu żądania POST są bezpieczniejsze przy przesyłaniu poufnych informacji.
Możesz wykonać żądanie POST za pomocą curl w poniższym formacie:
curl -X POST -d
Na przykład:
curl -X POST -d 'nazwa=jack' -d '[email protected]' \
https://example.com/users
Powyższe polecenie wysyła żądanie POST do https://example.com/users z danymi podanymi przez -D oznaczyć jako ładunek.
The -D flag określa dane do wysłania. W tym przypadku określono dwa parametry danych: imię = jack i [email protected].
Kiedy korzystasz z -D zaznacz więcej niż jeden raz w poleceniu, możesz scalić pola za pomocą symbolu &.
Na przykład:
curl -d "nazwa=jack&[email protected]" https://example.com/api/users
Niektóre dane, które możesz próbować wysłać w żądaniu POST, mogą być trudne do zmieszczenia w jednym ciągu w twoim terminalu. W takich przypadkach idealnym rozwiązaniem może być odczytanie i POST danych z pliku za pomocą curl.
Aby wysłać dane z pliku w żądaniu POST jako ładunek za pomocą curl, użyj @ podpisać zaraz po -D flaga, po której następuje ścieżka do pliku, który chcesz wysłać przez curl w żądaniu.
Na przykład:
curl -X POST -d @users.txt https://example.com/api/users
Określanie typu zawartości
Używając -D flag automatycznie ustawia nagłówek Content-Type na application/x-www-formularz-urlencoded. Możesz jednak ręcznie określić odpowiedni Content-Type dla swojego żądania za pomocą -H Lub --nagłówek flaga, po której następuje żądany typ zawartości.
Na przykład:
curl -H "Typ zawartości: aplikacja/json" \
-d '{"imię": "Jack", "email": "[email protected]"}' \
https://example.com/api/users
W powyższym poleceniu, -H flag określa nagłówek Content-Type jako Typ zawartości: application/json.
Możesz wymienić aplikacja/json z dowolnym innym prawidłowym typem MIME lub typem zawartości, który jest odpowiedni dla danych wysyłanych w treści żądania. Na przykład podczas przesyłania danych binarnych, takich jak obraz lub plik audio, należy ustawić Content-Type na dane wieloczęściowe/formularza.
Pozwala to na określenie oczekiwanego formatu przesyłanych danych, co może mieć znaczenie podczas interakcji z interfejsami API lub usługami sieciowymi wymagającymi określonych typów treści do prawidłowego przetwarzania.
Wykonywanie żądania HTTP PUT
Żądanie HTTP PUT to metoda aktualizowania istniejącego zasobu na serwerze WWW lub tworzenia takiego zasobu, jeśli zasób nie istnieje. Ta metoda różni się od metody POST tym, że jest idempotentna. Oznacza to, że wywołanie metody PUT raz lub kilka razy po kolei ma taki sam efekt na serwerze.
Możesz wykonać żądanie PUT za pomocą curl w poniższym formacie:
curl -X PUT -H "Typ zawartości: aplikacja/json" \
-d '{"imię": "Jack Bauer", "email": "[email protected]"}' \
https://example.com/api/users/4
Powyższe polecenie wysyła żądanie PUT w formacie JSON do serwera WWW określonego w powyższym adresie URL i aktualizuje określony zasób. Jeśli określony zasób nie istnieje, utworzy zasób na serwerze WWW.
Wykonywanie żądania HTTP DELETE
Żądanie HTTP DELETE to metoda usuwania określonego zasobu z serwera WWW. Podobnie jak żądania PUT, żądania DELETE są idempotentne. Wielokrotne wysyłanie tego samego żądania DELETE do tego samego zasobu da taki sam wynik na serwerze.
Możesz wysłać żądanie DELETE za pomocą curl, uruchamiając poniższe polecenie:
zwijanie -X USUŃ http://example.com/api/users/3
Powyższe polecenie wysyła żądanie DELETE do serwera WWW określonego w powyższym adresie URL i usuwa określony zasób.
Żądania usunięcia trwale usuwają określony zasób z serwera. Dlatego serwer WWW obsługujący DELETE zwykle wymaga formy uwierzytelnienie lub autoryzacja zanim będziesz mógł złożyć tę prośbę.
Oto jak wykonać żądanie DELETE z nagłówkiem autoryzacji:
curl -X DELETE -H "Autoryzacja: Nośnik my_access_token" \
https://example.com/api/users/3
Powyższe polecenie udostępnia informacje uwierzytelniające w nagłówku żądania przy użyciu metody uwierzytelniania okaziciela z rozszerzeniem -H flaga. Autoryzacja: posiadacz my_access_token jest wartością nagłówka. mój_token_dostępu jest symbolem zastępczym rzeczywistej wartości tokena dostępu.
Inne sposoby wysyłania żądań HTTP
Oprócz curl istnieje wiele sposobów wysyłania żądań HTTP w zależności od kontekstu żądania. Najpopularniejsze metody obejmują korzystanie z przeglądarki internetowej, takiej jak Chrome, narzędzia GUI, takiego jak Postman, lub klienta API.
Każda z tych opcji ma swoje zalety i kompromisy. Ostatecznie wybór narzędzia będzie zależał od wymagań zadania.