Lo strumento da riga di comando curl è un assistente perfetto quando lavori con il codice HTTP. Testa le richieste, esplora i formati dei dati e molto altro!

L'Hypertext Transfer Protocol (HTTP) è la spina dorsale della comunicazione su Internet, consentendo il trasferimento di dati tra server e client. Tuttavia, l'interazione con gli endpoint HTTP può essere impegnativa, soprattutto per i principianti.

Fortunatamente, curl, uno strumento da riga di comando, fornisce un modo semplice ed efficiente per inviare e ricevere richieste HTTP. Qui imparerai come utilizzare curl per effettuare richieste HTTP di base POST, GET, DELETE e PUT.

Installazione di curl

Per impostazione predefinita, curl è installato sui principali sistemi operativi tra cui macOS, Linux e Unix.

Puoi confermare di aver installato curl eseguendo il comando seguente:

arricciare

Il comando sopra dovrebbe stampare "prova 'curl --help' o 'curl --manual' per maggiori informazioni" sul tuo terminale.

Se curl non è installato sul tuo sistema operativo, puoi scaricarlo e installarlo da la pagina dei download di curl.

instagram viewer

Esecuzione di una richiesta HTTP GET

Una richiesta HTTP GET è un metodo per richiedere dati da un server web. Puoi utilizzare queste richieste per recuperare una risorsa specifica, ad esempio una pagina Web, un'immagine o un video.

Puoi effettuare una richiesta GET con curl nel formato seguente:

ricciolo -X OTTIENI 

Sostituire con l'URL della risorsa che desideri recuperare.

Per esempio:

ricciolo -X OTTIENI https://example.com/todos/1

L'esecuzione del comando precedente effettua una richiesta HTTP GET all'URL https://example.com/todos/1. IL -X OTTIENI L'opzione specifica che il metodo HTTP è GET. Quando il comando viene eseguito, curl invia una richiesta GET al server specificato nell'URL e attende la risposta del server.

Se il server risponde con un codice di stato di successo, arricciare visualizza il corpo della risposta nel terminale, che, in questo caso, sarebbero i dati JSON relativi a un elemento attività con ID 1.

In alternativa, puoi effettuare una richiesta GET senza specificare il -X flag perché, per impostazione predefinita, curl effettua una richiesta GET quando non si specifica un metodo di richiesta con il -X bandiera.

Per esempio:

arricciare https://example.com/todos/1

L'esecuzione del comando precedente restituirà la stessa risposta del comando precedente con "-X OTTIENI" bandiera.

Esecuzione di una richiesta HTTP POST

Una richiesta HTTP POST è un metodo per salvare i dati su un server web. A differenza di una richiesta GET, che invia i dati come parte dell'URL, una richiesta POST invia i dati nel corpo del messaggio della richiesta. Ciò rende le richieste POST più sicure per la trasmissione di informazioni sensibili.

Puoi effettuare una richiesta POST con curl nel formato seguente:

curl -X POST -d 

Per esempio:

curl -X POST -d 'nome=jack' -d '[email protected]' \
 https://example.com/users

Il comando precedente invia una richiesta POST a https://example.com/users con i dati specificati dall'art -D flag come payload.

IL -D flag specifica i dati da inviare. In questo caso, ha specificato due parametri di dati: nome=jack e [email protected].

Quando usi il -D flag più di una volta in un comando, è possibile unire i campi utilizzando il simbolo &.

Per esempio:

curl -d "nome=jack&[email protected]" https://example.com/api/users

Alcuni dati che potresti provare a inviare in una richiesta POST potrebbero essere difficili da inserire in una singola stringa nel tuo terminale. In casi come questo, potrebbe essere l'ideale leggere e POSTARE i dati da un file usando curl.

Per inviare i dati da un file in una richiesta POST come payload con curl, utilizzare il @ firmare subito dopo il -D flag, seguito dal percorso del file che si desidera che curl invii nella richiesta.

Per esempio:

curl -X POST -d @users.txt https://example.com/api/users

Specificare il tipo di contenuto

Usando il -D flag imposta automaticamente l'intestazione Content-Type su application/x-www-form-urlencoded. Tuttavia, puoi specificare manualmente il tipo di contenuto appropriato per la tua richiesta utilizzando il file -H O --intestazione flag seguito dal tipo di contenuto desiderato.

Per esempio:

curl -H "Tipo di contenuto: applicazione/json" \
 -d '{"name": "Jack", "email": "[email protected]"}' \
 https://example.com/api/users

Nel comando sopra, il -H flag specifica l'intestazione Content-Type as Tipo di contenuto: applicazione/json.

Puoi sostituire applicazione/json con qualsiasi altro tipo MIME valido o tipo di contenuto appropriato per i dati che stai inviando nel corpo della richiesta. Ad esempio, quando si caricano dati binari, come un'immagine o un file audio, è necessario impostare Content-Type su multipart/forma-dati.

Ciò consente di specificare il formato previsto dei dati inviati, che può essere importante quando si interagisce con API o servizi Web che richiedono tipi di contenuto specifici per una corretta elaborazione.

Esecuzione di una richiesta PUT HTTP

Una richiesta HTTP PUT è un metodo per aggiornare una risorsa esistente su un server Web o per crearne una se la risorsa non esiste. Questo metodo differisce dal metodo POST nel senso che è idempotente. Ciò significa che chiamare il metodo PUT una o più volte consecutive ha lo stesso effetto sul server.

Puoi effettuare una richiesta PUT con curl nel formato seguente:

curl -X PUT -H "Tipo di contenuto: applicazione/json" \
 -d '{"name": "Jack Bauer", "email": "[email protected]"}' \
 https://example.com/api/users/4

Il comando precedente invia una richiesta PUT in formato JSON al server Web specificato nell'URL precedente e aggiorna la risorsa specificata. Se la risorsa specificata non esiste, creerà la risorsa sul server web.

Esecuzione di una richiesta HTTP DELETE

Una richiesta HTTP DELETE è un metodo per eliminare una risorsa specificata da un server web. Analogamente alle richieste PUT, le richieste DELETE sono idempotenti. L'invio della stessa richiesta DELETE più volte alla stessa risorsa produrrà lo stesso risultato sul server.

Puoi effettuare una richiesta DELETE con curl eseguendo il comando seguente:

curl -X ELIMINA http://example.com/api/users/3

Il comando sopra invia una richiesta DELETE al server web specificato nell'URL sopra ed elimina la risorsa specificata.

Elimina richieste rimuove definitivamente la risorsa specificata dal server. Pertanto, un server Web che supporta DELETE di solito richiede una forma di autenticazione o autorizzazione prima di poter effettuare questa richiesta.

Ecco come effettuare una richiesta DELETE con un'intestazione di autorizzazione:

curl -X DELETE -H "Autorizzazione: portatore my_access_token" \
 https://example.com/api/users/3

Il comando precedente fornisce le informazioni di autenticazione nell'intestazione della richiesta utilizzando il metodo di autenticazione del portatore con il -H bandiera. Autorizzazione: portatore my_access_token è il valore dell'intestazione. my_access_token è un segnaposto per il valore effettivo del token di accesso.

Altri modi per effettuare richieste HTTP

Oltre a curl, esistono diversi modi per effettuare richieste HTTP a seconda del contesto della richiesta. I metodi più comuni includono l'utilizzo di un browser Web come Chrome, uno strumento GUI come Postman o un client API.

Ognuna di queste opzioni ha i suoi vantaggi e compromessi. In definitiva, la scelta di uno strumento dipenderà dai requisiti della tua attività.