Python:
Envoi d'une requête HTTP

How to:

Utiliser Python pour envoyer des requêtes HTTP est simple avec la bibliothèque requests. D’abord, installez-le si ce n’est pas déjà fait :

pip install requests

Ensuite, un exemple basique pour récupérer le contenu d’une page web :

import requests

reponse = requests.get('https://www.example.com')
print(reponse.status_code)
print(reponse.text[:200])  # Affiche les 200 premiers caractères du contenu.

Pour envoyer des données en utilisant POST :

donnees = {'key': 'value'}
reponse = requests.post('https://www.example.com', data=donnees)
print(reponse.status_code)

Résultats typiques :

200
<!doctype html> ...
200

Deep Dive

Historiquement, l’envoi de requêtes HTTP s’effectuait en Python avec urllib. requests est apparu comme une alternative plus simple et plus conviviale.

Contrairement à urllib, requests simplifie le processus en gérant automatiquement les cookies, les en-têtes et les paramètres, rendant le code plus intuitif. De plus, requests gère les exceptions plus clairement et supporte mieux les sessions HTTP.

Par exemple, avec requests on peut gérer une session avec context manager, comme ceci :

with requests.Session() as session:
    session.get('https://www.example.com')  # utilise des cookies persistants si nécessaire

Un autre point fort de requests est la gestion des requêtes asynchrones via requests-async ou httpx pour des workflows encore plus efficaces.

See Also