Jak wysyłać żądania POST za pomocą cURL

cURL to wszechstronne narzędzie wiersza poleceń zaprojektowane do bezproblemowego przesyłania danych przez różne protokoły sieciowe, w tym HTTP, HTTPS i FTP. Dostępne na wszystkich głównych systemach operacyjnych, cURL stało się standardowym narzędziem do wysyłania żądań HTTP z wiersza poleceń. Jego wieloplatformowe narzędzie obsługuje protokoły takie jak HTTP, HTTPS, FTP i IMAP, ułatwiając wysyłanie żądań do interfejsów API i scrapowanie stron internetowych. Ze względu na szeroką dostępność i obsługę protokołu, cURL jest powszechnie wymieniany w dokumentacji interfejsu API REST jako szybki sposób testowania wywołań interfejsu API bezpośrednio z wiersza poleceń.
W tym samouczku dowiesz się, jak wykonywać żądania POST za pomocą cURL, co umożliwia efektywną komunikację z serwerami poprzez proste instrukcje wiersza poleceń.
Czym jest żądanie POST?
Żądanie POST to metoda HTTP używana do wysyłania danych do serwera i jest jedną z najpopularniejszych metod HTTP. W przeciwieństwie do żądań GET, w których dane są zawarte w adresie URL, żądania POST przesyłają dane w treści żądania. Umożliwia to dyskretny transfer danych i unika ograniczeń długości adresu URL narzucanych przez przeglądarki w żądaniach GET.
Żądania POST są często używane do przesyłania formularzy, przesyłania plików i wysyłania danych JSON do interfejsów API. Ponieważ dane są przechowywane w treści żądania, nie są widoczne w historii przeglądarki, a w przeciwieństwie do żądań GET, żądania POST zazwyczaj nie są buforowane przez przeglądarki.
Praktyczne przypadki użycia żądań POST cURL
Żądania POST cURL są szeroko stosowane w różnych scenariuszach, w tym:
- Testowanie interfejsów API REST – programiści używają cURL do szybkiego testowania punktów końcowych interfejsu API przed ich wdrożeniem w aplikacjach.
- Automatyzacja przesyłania formularzy – Używając cURL możesz automatyzować interakcje z formularzami internetowymi, przesyłając dane bez konieczności ręcznego wprowadzania danych.
- Przesyłanie plików – wiele interfejsów API umożliwia przesyłanie plików za pomocą żądań POST, co sprawia, że cURL jest skutecznym narzędziem do automatyzacji tego procesu.
- Interakcja z systemami uwierzytelniania – programiści mogą używać cURL do uwierzytelniania użytkowników i uzyskiwania dostępu do chronionych zasobów przy użyciu tokenów API lub danych uwierzytelniających.
- Scraping i integracja danych – wyodrębnianie i integrowanie danych z różnych źródeł online jest uproszczone dzięki możliwościom żądania POST pakietu cURL.
Wykonywanie żądania POST za pomocą cURL
Aby rozpocząć używanie cURL do żądań POST, upewnij się, że jest zainstalowany w systemie. Jeśli jeszcze go nie zainstalowałeś, zapoznaj się z naszym przewodnikiem dotyczącym konfigurowania cURL. Poniżej znajduje się tabela referencyjna podsumowująca podstawowe opcje cURL:
Krótka flaga | Długa flaga | Argument(y) | Opis |
-X | --wniosek | (użyj „POST” dla żądań POST) | Definiuje metodę HTTP dla żądania |
-B | --ciastko | Wysyła pliki cookie w żądaniu | |
-C | --słoik-na-ciasteczka | Zapisuje otrzymane pliki cookie do pliku | |
-D | --dane | Przesyła dane w żądaniu POST | |
-F | --ponieść porażkę | Zapewnia cichą awarię w przypadku błędów serwera | |
-F | --formularz | <nazwa=treść> | Przesyła dane formularza (application/x-www-form-urlencoded) |
-H | --chodnikowiec | nagłówek/@plik | Zawiera niestandardowe nagłówki HTTP |
-I | --włączać | Wyświetla nagłówki HTTP w odpowiedzi | |
-l | --głowa | Pobiera tylko nagłówki | |
-k | --niepewny | Omija weryfikację SSL | |
-L | --lokalizacja | Śledzi przekierowania (3XX) | |
-o | --wyjście | Zapisuje dane wyjściowe do określonego pliku | |
-O | --nazwa-zdalna | Zapisuje dane wyjściowe ze zdalną nazwą pliku | |
-S | --cichy | Tłumi komunikaty wyjściowe | |
-w | --gadatliwy | Umożliwia szczegółowe wyjście (debugowanie) | |
-w | --wypisać | Szczegóły odpowiedzi na wyjścia |
Aby wyświetlić pełną listę dostępnych opcji, użyj:
curl --pomoc
Typowe błędy i jak je naprawić
Mimo że cURL jest potężny, użytkownicy często napotykają błędy podczas wysyłania żądań POST. Oto kilka typowych problemów i rozwiązań:
- curl: (6) Nie można rozwiązać hosta – Oznacza to, że nazwa domeny jest niepoprawna lub występuje problem z rozwiązywaniem DNS. Sprawdź ponownie adres URL.
- curl: (7) Nie udało się połączyć z hostem – wskazuje, że serwer jest niedostępny. Upewnij się, że serwer jest online i masz aktywne połączenie z internetem.
- curl: (35) Błąd połączenia SSL – Jeśli żądanie nie powiedzie się z powodu problemów z SSL, spróbuj użyć -k, aby ominąć weryfikację SSL.
- HTTP 400 Bad Request – Oznacza to, że serwer odrzucił żądanie, często z powodu nieprawidłowego formatu danych. Sprawdź typ zawartości i ładunek danych.
- HTTP 401 Unauthorized – występuje, gdy wymagane jest uwierzytelnienie, ale brakuje go lub jest nieprawidłowe. Upewnij się, że klucze API lub poświadczenia są poprawnie przekazywane za pomocą -u lub -H "Authorization: Bearer <token>".
Podstawowa składnia żądania POST
curl -X POST -d "Witaj" https://example.com/api
W tym poleceniu:
- -X POST określa typ żądania.
- -d „Witaj” definiuje wysyłane dane.
- https://example.com/api jest adresem docelowym.
Ustawianie nagłówków typu zawartości
curl -X POST -H "Typ zawartości: text/plain" -d "Witaj" https://example.com/api
Dodanie -H „Content-Type: text/plain” informuje serwer, że formatem danych jest zwykły tekst.
Wysyłanie danych JSON
curl -X POST -H "Typ zawartości: application/json" -d '{"key":"value"}' https://example.com/api
Użycie typu zawartości application/json gwarantuje, że dane zostaną prawidłowo zinterpretowane jako JSON.
Wysyłanie danych XML
curl -X POST -H "Typ zawartości: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api
Wysyłanie plików za pomocą POST
curl -X POST -F "file=@/path/to/img.png" https://example.com/api/upload
W przypadku przesyłania wielu plików:
curl -X POST -F "file=@/path/to/img1.png" -F "file=@/path/to/img2.png" https://example.com/api/upload
Uwierzytelnianie za pomocą cURL
curl -u nazwa_użytkownika:hasło https://example.com/login
Zastąp nazwę użytkownika i hasło rzeczywistymi danymi uwierzytelniającymi.
Wniosek
cURL upraszcza interakcje HTTP dzięki swoim potężnym i elastycznym opcjom wiersza poleceń. Dzięki opanowaniu żądań POST programiści mogą sprawnie zarządzać komunikacją API, transmisją danych i przesyłaniem plików. Niezależnie od tego, czy musisz testować punkty końcowe API, automatyzować przesyłanie formularzy, czy też zeskrobywać dane ze stron internetowych, cURL zapewnia lekkie i skuteczne rozwiązanie. Eksperymentuj z cURL, aby zoptymalizować swój przepływ pracy!
Pamiętaj, że Plisio oferuje również:
Twórz faktury Crypto za pomocą 2 kliknięć and Przyjmuj darowizny kryptowalutowe
14 integracje
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 biblioteki dla najpopularniejszych języków programowania
- PHP Biblioteka
- Python Biblioteka
- React Biblioteka
- Vue Biblioteka
- NodeJS Biblioteka
- Android sdk Biblioteka
- C#
- Ruby
- Java
- Kotlin
19 kryptowalut i 12 łańcuch bloków
- Bitcoin (BTC)
- Ethereum (ETH)
- Ethereum Classic (ETC)
- Tron (TRX)
- Litecoin (LTC)
- Dash (DASH)
- DogeCoin (DOGE)
- Zcash (ZEC)
- Bitcoin Cash (BCH)
- Tether (USDT) ERC20 and TRX20 and BEP-20
- Shiba INU (SHIB) ERC-20
- BitTorrent (BTT) TRC-20
- Binance Coin(BNB) BEP-20
- Binance USD (BUSD) BEP-20
- USD Coin (USDC) ERC-20
- TrueUSD (TUSD) ERC-20
- Monero (XMR)