Come utilizzare la libreria delle richieste di Python per HTTP
La libreria requests
è un modulo Python popolare che semplifica il processo di creazione di richieste HTTP. Astrae la complessità della gestione di richieste e risposte, rendendo più semplice l'interazione con i servizi Web e le API. In questo articolo, esploreremo le basi dell'utilizzo della libreria requests
, incluso come inviare vari tipi di richieste HTTP e gestire le risposte.
Installazione della libreria Requests
Prima di poter usare la libreria requests
, dovrai installarla. Puoi installarla usando pip
, il gestore di pacchetti Python. Esegui il seguente comando nel tuo terminale:
pip install requests
Creazione di una semplice richiesta GET
La richiesta HTTP più elementare è una richiesta GET, che recupera dati da un server. Ecco come puoi usare la libreria requests
per fare una richiesta GET:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
In questo esempio, inviamo una richiesta GET all'API GitHub e stampiamo il codice di stato HTTP e il contenuto della risposta in formato JSON.
Invio di richieste POST
Le richieste POST vengono utilizzate per inviare dati a un server, come gli invii di moduli. Ecco come inviare una richiesta POST con la libreria requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
In questo esempio, inviamo una richiesta POST con alcuni dati del modulo al servizio di test httpbin.org e stampiamo il codice di stato della risposta e il contenuto.
Gestione dei parametri di query
A volte è necessario includere parametri di query nelle richieste. La libreria requests
semplifica questa operazione consentendo di passare i parametri come un dizionario:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
In questo esempio, includiamo i parametri di query in una richiesta GET e stampiamo l'URL finale con i parametri inclusi.
Lavorare con le intestazioni
Potresti dover includere intestazioni personalizzate nelle tue richieste, ad esempio per l'autenticazione o per specificare i tipi di contenuto. Ecco come aggiungere intestazioni alle tue richieste:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
In questo esempio, includiamo un'intestazione di autorizzazione nella richiesta all'API GitHub e stampiamo il codice di stato e il contenuto della risposta.
Gestione dei timeout e delle eccezioni
È importante gestire potenziali problemi come timeout di rete e altre eccezioni. La libreria requests
consente di specificare timeout e catturare eccezioni:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
In questo esempio, impostiamo un timeout per la richiesta e catturiamo eventuali eccezioni, stampando un messaggio di errore se qualcosa va storto.
Conclusione
La libreria requests
è uno strumento potente e intuitivo per effettuare richieste HTTP in Python. Che tu stia recuperando dati da API, inviando form o gestendo intestazioni personalizzate, la libreria requests
semplifica l'esecuzione di queste attività con solo poche righe di codice. Padroneggiando le basi trattate in questo articolo, sarai ben equipaggiato per interagire con servizi Web e API nei tuoi progetti Python.