3.1 Modulo requests
Per lavorare in modo basilare con Internet in Python esiste la libreria
requests
. Offre un'interfaccia comoda per
lavorare con la rete, permettendo di inviare richieste HTTP e ricevere risposte con
il minimo sforzo.
Questa libreria non è fornita insieme a Python, quindi prima di utilizzarla devi installarla usando un package manager.
Apri il tuo terminale e scrivi:
pip install requests
Dopo aver installato la libreria, puoi utilizzare il modulo requests
nei tuoi progetti. Ad esempio, ecco come puoi determinare il tuo indirizzo IP esterno:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # Stampa il codice di stato della risposta
print(response.json()) # Stampa la risposta JSON
Qui abbiamo inviato una richiesta al servizio (sito) ip.jsontest.com
, che restituisce un oggetto JSON con
l'indirizzo IP da cui è stata inviata la richiesta. La richiesta e la ricevuta della risposta avvengono in una sola riga — molto comodo. Nelle righe successive abbiamo semplicemente stampato la risposta del server.
Nell'esempio sopra abbiamo chiamato il metodo get()
, più avanti ti parlerò di questo metodo e di altri metodi dell'oggetto
requests
.
3.2 Lista dei metodi
L'oggetto requests
ha metodi per ogni situazione della vita, o meglio un metodo per ogni tipo di richiesta HTTP.
Metodo | Descrizione |
---|---|
requests.get()
|
Invia una GET richiesta per ottenere dati dal server. |
requests.post() |
Invia una POST richiesta per inviare dati al server. |
requests.put() |
Invia una PUT richiesta per aggiornare dati sul server. |
requests.delete() |
Invia una DELETE richiesta per eliminare dati dal server. |
requests.head() |
Invia una HEAD richiesta per ottenere gli header senza il corpo della risposta. |
requests.options() |
Invia una OPTIONS richiesta per ottenere i metodi e i parametri supportati dal server. |
requests.patch() |
Invia una PATCH richiesta per aggiornamenti parziali di dati sul server. |
requests.request() |
Metodo principale per inviare tutti i tipi di HTTP richieste. |
Di seguito ne esamineremo alcuni dei più basilari.
3.3 Invio di una GET
e di una POST
richiesta
Una GET
richiesta di solito consiste solo nel URL, oppure può contenere ulteriori stringhe di parametri.
1. Invio di una GET
richiesta semplice
La GET
richiesta è usata per ottenere dati dal server. Il parametro obbligatorio è l'URL, al quale viene inviata la richiesta.
Esempio:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # Stampa il codice di stato della risposta
print(response.json()) # Stampa la risposta JSON
2. Invio di una GET
richiesta con parametri
Inoltre, l'URL può contenere parametri aggiuntivi sotto forma di stringa key=value&key2=value2&…
Nel nostro caso, i parametri sono passati sotto forma di dizionario alla variabile params
:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. Invio di una POST
richiesta
Una POST
richiesta può contenere il corpo della richiesta: testo, JSON o persino un'immagine.
Esempio:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 Invio di una PUT
e di una DELETE
richiesta
1. Invio di una PUT
richiesta
La PUT
richiesta è utilizzata per aggiornare dati sul server.
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. Invio di una DELETE
richiesta
La DELETE
richiesta è utilizzata per eliminare dati dal server.
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
Per capire meglio la natura delle richieste GET
, POST
, PUT
e DELETE
, devi leggere le lezioni sulla struttura della rete,
Internet, web e HTTP
. Tutto questo ti aspetta nel prossimo futuro.
GO TO FULL VERSION