Python fornisce diversi moduli per effettuare richieste HTTP. Tra le più popolari ci sono httplib, urllib, httplib2, treq, ecc., ma la più popolare e ampiamente usata è `Requests: HTTP for Humans`.
Ecco un esempio di come si può fare una richiesta HTTP GET utilizzando il modulo `requests`:
```
import requests
response = requests.get(‘http://www.example.com’)
print(response.status_code)
print(response.content)
```
Nell’esempio sopra, prima facciamo l’import del modulo requests, successivamente usiamo la funzione `get` per fare una richiesta al sito web ‘http://www.example.com’. Questa funzione restituisce un oggetto Response che contiene la risposta del server. Quindi stampiamo lo status code della risposta e il contenuto della risposta.
Analogamente, possiamo fare una richiesta HTTP POST come segue:
```
import requests
response = requests.post(‘http://www.example.com’)
print(response.status_code)
print(response.content)
```
E’ possibile anche passare parametri in una richiesta GET. Ecco un esempio:
```
payload = {‘key1’: ‘value1’, ‘key2’: ‘value2’}
response = requests.get(‘http://www.example.com’, params=payload)
```
Inoltre, possiamo inviare dati JSON in una richiesta POST come segue:
```
import json
payload = {‘key1’: ‘value1’, ‘key2’: ‘value2’}
headers = {‘content-type’: ‘application/json’}
response = requests.post(‘http://www.example.com’, data=json.dumps(payload), headers=headers)
```
Nota: Prima di utilizzare il modulo `requests`, devi installarlo. Puoi farlo utilizzando pip:
```
pip install requests
```