Come inviare richieste POST con cURL

cURL è una versatile utility da riga di comando progettata per trasferimenti di dati senza interruzioni su diversi protocolli di rete, tra cui HTTP, HTTPS e FTP. Disponibile su tutti i principali sistemi operativi, cURL è diventato lo strumento standard per inviare richieste HTTP dalla riga di comando. La sua utility multipiattaforma supporta protocolli come HTTP, HTTPS, FTP e IMAP, semplificando l'invio di richieste alle API e lo scraping di siti Web. Grazie alla sua ampia disponibilità e al supporto del protocollo, cURL è comunemente citato nella documentazione REST API come un modo rapido per testare le chiamate API direttamente dalla riga di comando.
Questo tutorial approfondisce l'esecuzione di richieste POST tramite cURL, consentendo una comunicazione efficiente con i server tramite semplici istruzioni da riga di comando.
Che cos'è una richiesta POST?
Una richiesta POST è un metodo HTTP utilizzato per inviare dati a un server ed è uno dei metodi HTTP più comuni. A differenza delle richieste GET, in cui i dati sono inclusi nell'URL, le richieste POST trasmettono i dati nel corpo della richiesta. Ciò consente un trasferimento discreto dei dati ed evita le limitazioni di lunghezza dell'URL imposte dai browser sulle richieste GET.
Le richieste POST sono usate frequentemente per l'invio di moduli, il caricamento di file e l'invio di dati JSON alle API. Poiché i dati sono archiviati nel corpo della richiesta, non sono visibili nella cronologia del browser e, a differenza delle richieste GET, le richieste POST non vengono solitamente memorizzate nella cache dai browser.
Casi di utilizzo pratico per le richieste POST cURL
Le richieste cURL POST sono ampiamente utilizzate in vari scenari, tra cui:
- Test delle API REST : gli sviluppatori utilizzano cURL per testare rapidamente gli endpoint API prima di implementarli nelle applicazioni.
- Automazione dell'invio di moduli : utilizzando cURL, puoi automatizzare le interazioni con i moduli Web, inviando dati senza input manuale.
- Caricamento file : molte API consentono il caricamento di file tramite richieste POST, rendendo cURL uno strumento efficace per automatizzare questo processo.
- Interazione con i sistemi di autenticazione : gli sviluppatori possono utilizzare cURL per autenticare gli utenti e accedere a risorse protette con token API o credenziali.
- Estrazione e integrazione dei dati : l'estrazione e l'integrazione dei dati da diverse fonti online vengono semplificate utilizzando le funzionalità di richiesta POST di cURL.
Esecuzione di una richiesta POST con cURL
Per iniziare a usare cURL per le richieste POST, assicurati che sia installato sul tuo sistema. Se non lo hai ancora installato, fai riferimento alla nostra guida sulla configurazione di cURL. Di seguito è riportata una tabella di riferimento che riassume le opzioni essenziali di cURL:
Bandiera corta | Bandiera lunga | Argomento(i) | Descrizione |
-X | --richiesta | (utilizzare "POST" per le richieste POST) | Definisce il metodo HTTP per la richiesta |
-B | --biscotto | Invia i cookie nella richiesta | |
-C | --barattolo dei biscotti | Salva i cookie ricevuti in un file | |
-D | --dati | Trasmette i dati in una richiesta POST | |
-F | --fallire | Garantisce un guasto silenzioso in caso di errori del server | |
-F | --modulo | <nome=contenuto> | Invia i dati del modulo (application/x-www-form-urlencoded) |
-H | --intestazione | intestazione/@file | Include intestazioni HTTP personalizzate |
-io | --include | Visualizza le intestazioni HTTP nella risposta | |
-l | --Testa | Recupera solo le intestazioni | |
-k | --insicuro | Ignora la verifica SSL | |
-L | --posizione | Segue i reindirizzamenti (3XX) | |
-o | --produzione | Salva l'output in un file specificato | |
-O | --nome-remoto | Salva l'output con il nome del file remoto | |
-S | --silenzioso | Sopprime i messaggi di output | |
-v | --verboso | Abilita l'output dettagliato (debug) | |
-e | --scrivere-fuori | Dettagli della risposta in uscita |
Per visualizzare l'elenco completo delle opzioni disponibili, utilizzare:
arricciatura --aiuto
Errori comuni e come risolverli
Anche se cURL è potente, gli utenti spesso riscontrano errori quando inviano richieste POST. Ecco alcuni problemi comuni e soluzioni:
- curl: (6) Impossibile risolvere l'host – Ciò significa che il nome di dominio è errato o c'è un problema di risoluzione DNS. Ricontrolla l'URL.
- curl: (7) Impossibile connettersi all'host – Indica che il server non è raggiungibile. Assicurati che il server sia online e che tu abbia una connessione Internet attiva.
- curl: (35) Errore di connessione SSL – Se la richiesta fallisce a causa di problemi SSL, prova a usare -k per ignorare la verifica SSL.
- HTTP 400 Bad Request – Ciò significa che il server ha rifiutato la richiesta, spesso a causa di un formato dati non corretto. Controllare il tipo di contenuto e il payload dei dati.
- HTTP 401 Unauthorized – Si verifica quando l'autenticazione è richiesta ma manca o è errata. Assicurati che le chiavi API o le credenziali siano passate correttamente con -u o -H "Authorization: Bearer <token>".
Sintassi di base della richiesta POST
curl -X POST -d "Ciao" https://example.com/api
In questo comando:
- -X POST specifica il tipo di richiesta.
- -d "Ciao" definisce i dati inviati.
- https://example.com/api è l'URL di destinazione.
Impostazione delle intestazioni del tipo di contenuto
curl -X POST -H "Content-Type: text/plain" -d "Ciao" https://example.com/api
Aggiungendo -H "Content-Type: text/plain" si informa il server che il formato dei dati è testo normale.
Invio di dati JSON
curl -X POST -H "Tipo di contenuto: applicazione/json" -d '{"key":"value"}' https://example.com/api
Utilizzando application/json come tipo di contenuto si garantisce che i dati vengano interpretati correttamente come JSON.
Invio di dati XML
curl -X POST -H "Content-Type: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api
Caricamento di file con POST
curl -X POST -F "file=@/percorso/verso/img.png" https://example.com/api/upload
Per caricare più file:
curl -X POST -F "file=@/percorso/verso/img1.png" -F "file=@/percorso/verso/img2.png" https://example.com/api/upload
Autenticazione con cURL
curl -u nomeutente:password https://example.com/login
Sostituisci nome utente e password con le credenziali effettive.
Conclusione
cURL semplifica le interazioni HTTP con le sue potenti e flessibili opzioni della riga di comando. Padroneggiando le richieste POST, gli sviluppatori possono gestire in modo efficiente le comunicazioni API, le trasmissioni dati e i caricamenti file. Che tu abbia bisogno di testare endpoint API, automatizzare gli invii di moduli o estrarre dati dai siti Web, cURL fornisce una soluzione leggera ed efficace. Continua a sperimentare con cURL per ottimizzare il tuo flusso di lavoro!
Ti ricordiamo che Plisio ti offre anche:
Crea fatture crittografiche in 2 clic and Accetta donazioni in criptovalute
14 integrazioni
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 librerie per i linguaggi di programmazione più diffusi
- PHP Biblioteca
- Python Biblioteca
- React Biblioteca
- Vue Biblioteca
- NodeJS Biblioteca
- Android sdk Biblioteca
- C#
- Ruby
- Java
- Kotlin
19 criptovalute e 12 blockchain
- 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)