CodeGym /Corso Java /Python SELF IT /Lavorare con la rete

Lavorare con la rete

Python SELF IT
Livello 23 , Lezione 2
Disponibile

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.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION