Ciao a tutti e benvenuti in questa piccola guida Python dove andremo a vedere come inviare una richiesta di tipo GET usando il modulo ‘requests’.
Che cos’è una richiesta GET
La richiesta GET appartiene al protocollo http ed è un modo per richiedere appunto delle risorse posizionate in un certo luogo. Quando il vostro browser naviga ad un sito come www.devnews.it, dietro le quinte viene inviata una richiesta del tipo GET che richiede una rappresentazione in forma di codice HTML, CSS, JS etc. Queste risorse sono posizionate in nel server del sito visitato. Le richieste HTTP incluso le richieste GET, possono essere generate anche programmaticamente, per esempio usando un linguaggio di programmazione come Python. Un utilizzo molto comune della richiesta GET è quello di richiedere una risorsa da una API, per esempio la API di un sistema di previsioni meteo, informazioni sul traffico stradale, ed altro.
A cosa serve il modulo requests per Python
Il modulo requests è un modulo per Python che ci permette di creare vari tipi di richieste HTTP e manipolare i vari parametri che compongono una richiesta http come headers, dati di form, etc.
Oggi vedremo come inviare una richiesta GET utilizzando proprio questo modulo.
Come installare il modulo requests
Come per la maggior parte dei moduli per Python, installare requests è molto facile e può essere fatto tramite l’uso di pip, un manager di moduli e dependency per Python.
Per installare requests globalmente sul vostro PC potete eseguire questo comando da una finestra del Terminal / cmd:
pip install requests
Se invece non volete installare il modulo globalmente, potete fare uso di un virtualenv. Se non sapete come utilizzare un virtual env potete leggere questa guida.
Come creare una richiesta GET con Python e requests
Per testare la nostra applicazione faremo uso di un servizio molto utile per i web developer che lavorano molto con le richieste http. Questo servizio di chiama JSON test: http://www.jsontest.com/
JSON test ci permette di testare le nostre richieste GET, mettendo a disposizione una API aperta al pubblico. Nel nostro caso andremo ad inviare una richieste GET al seguente url:
http://echo.jsontest.com/key/value/one/two
Se navigate a questo URL dal vostro browser vedrete che ci verranno mostrati dei valori di test in formato JSON.
Vediamo se riusciamo ad ottenere questi valori nel nostro programma Python.
import requests
r = requests.get('http://echo.jsontest.com/key/value/one/two')
print(r.text)
- Come prima cosa dobbiamo importare il modulo requests
- Poi creiamo un richiesta GET utilizzando la funzione requests.get()
- Stampiamo il contenuto della risposta HTTP contenuta in r.text
Se eseguiamo questo script da un terminal, dovremmo vedere in uscita un testo in formato JSON del tipo:
{
"one": "two",
"key": "value" }
Vediamo insieme ora altre funzionalità del modulo requests nel contesto di richieste GET
In particolare vediamo come ottenere le seguenti informazioni:
- Oggetti JSON
- Codici di stato
- Headers http
- Informazioni sui re-indirizzamenti
import requests
r = requests.get('http://echo.jsontest.com/key/value/one/two')
print(r.text) # contenuto della risposta HTTP
print(r.json) # oggetto JSON
print(r.status_code) # codice di status
print(r.headers) # informazione contenuta negli headers della risposta
print(r.history) # informazioni sui reindirizzamenti
Ci siamo ora sapete come creare una richiesta GET utilizzando il modulo requests per Python.