About

Styles

Contact

Envoyer des requêtes HTTP en Python avec requests : GET et POST

Dans l’univers dynamique de la programmation web, maîtriser l’envoi de requêtes HTTP est une compétence incontournable. Les méthodes GET et POST jouent un rôle clé dans la communication entre un client Python et les serveurs ou API, que ce soit pour récupérer des données ou envoyer des informations. La bibliothèque requests simplifie considérablement ces interactions en offrant une interface intuitive qui facilite le développement et l’intégration d’applications web modernes. Que ce soit pour extraire du contenu d’un site, interagir avec une API REST, ou soumettre un formulaire, comprendre l’usage efficace de GET et POST permet d’optimiser ses flux de données et d’améliorer la robustesse de ses scripts Python. Depuis l’installation jusqu’à la gestion sécurisée des échanges, ce tutoriel propose une exploration complète pour maîtriser les fondamentaux des requêtes HTTP en 2026.

En bref :

requests est la bibliothèque Python de référence pour envoyer des requêtes HTTP de manière simple et efficace. La méthode GET sert principalement à récupérer des ressources en passant des paramètres dans l’URL, tandis que POST permet d’envoyer des données au serveur via le corps de la requête, offrant ainsi une sécurité et une souplesse accrues. L’usage des en-têtes personnalisés et la gestion des erreurs HTTP contribuent à rendre les échanges fiables. La possibilité d’envoyer du JSON et de gérer les sessions assure une communication performante avec des API web modernes. Des outils comme Flask ou Django, Flask et FastAPI tirent parti de ces fonctionnalités pour développer des applications robustes. Ce savoir-faire est indispensable pour tout développeur Python cherchant à automatiser la récupération et l’envoi de données sur le web.

Premiers pas avec Python Requests pour envoyer des requêtes HTTP GET

Envoyer une requête GET avec la bibliothèque requests est l’opération la plus courante lors de l’appel d’une API ou la récupération d’une page web. Cette méthode interroge un serveur pour obtenir des données, en transmettant éventuellement des paramètres via l’URL.

Après avoir installé requests avec pip install requests, il suffit d’importer la bibliothèque : import requests. Une simple requête GET s’écrit comme suit :

import requests
response = requests.get("https://api.github.com")
print("Code statut :", response.status_code)
print("Contenu :", response.text)

Ce fragment de code interroge l’API GitHub et affiche le code HTTP 200 indiquant le succès. Le contenu reçu est accessible via response.text, ou sous forme brute avec response.content. Pour faciliter le traitement des données au format JSON, la méthode json() convertit la réponse en dictionnaire Python.

apprenez à envoyer des requêtes http en python avec la bibliothèque requests, en utilisant les méthodes get et post pour interagir facilement avec des api et des serveurs web.

Personnaliser les requêtes GET avec des paramètres et des en-têtes

Dans de nombreux cas, les requêtes GET nécessitent des paramètres additionnels pour filtrer ou chercher des ressources spécifiques. La bibliothèque requests simplifie cet envoi via un dictionnaire passé avec le paramètre params. Par exemple :

params = {"q": "python", "sort": "stars"}
response = requests.get("https://api.github.com/search/repositories", params=params)
data = response.json()
print("Dépôts trouvés :", data["total_count"])

En parallèle, il est possible de définir des en-têtes HTTP personnalisés pour simuler un navigateur ou transmettre des informations spécifiques telles qu’un token d’authentification :

headers = {"User-Agent": "PythonApp/1.0", "Accept": "application/json"}
response = requests.get("https://api.github.com", headers=headers)
print(response.status_code)

La gestion fine des en-têtes améliore la compatibilité avec les API web et optimise la sécurité. Ces pratiques sont fondamentales pour des intégrations dans des projets intégrant notamment des bases de données via des ORM comme SQLAlchemy.

Comment envoyer des données avec la méthode POST en Python

Contrairement à GET qui récupère des données, la méthode POST sert à envoyer des informations au serveur. Elle est principalement utilisée pour soumettre des formulaires, créer des ressources, ou transmettre des données sensibles qui ne doivent pas apparaître dans l’URL, garantissant ainsi une meilleure sécurité.

La syntaxe avec requests est elle aussi simple :

url = "https://httpbin.org/post"
donnees = {"nom": "Alice", "email": "alice@example.com"}
response = requests.post(url, data=donnees)
print(response.json())

On peut aussi transmettre des données directement au format JSON, ce qui est fréquent notamment lors d’appels aux API REST :

payload = {"utilisateur": "Bob", "age": 30}
response = requests.post(url, json=payload)
print(response.json())

Cette approche est privilégiée en 2026 pour faciliter l’interopérabilité avec des services web modernes et standardisés, notamment dans les architectures basées sur Flask ou Django, Flask et FastAPI.

Assurer la robustesse des échanges : gestion des erreurs, timeout et sessions

Pour développer un client HTTP fiable, il ne suffit pas d’envoyer une requête. Il est crucial de vérifier les codes de retour comme 404 (ressource non trouvée) ou 500 (erreur serveur) et de gérer les exceptions liées au réseau.

try:
    response = requests.get("https://api.github.com/invalid", timeout=3)
    response.raise_for_status()
except requests.exceptions.Timeout:
    print("Timeout atteint lors de la requête")
except requests.exceptions.HTTPError as err:
    print("Erreur HTTP :", err)
else:
    print("Requête réussie")

Les sessions permettent de conserver l’état entre plusieurs requêtes, en mémorisant par exemple les cookies ou les en-têtes personnalisés. C’est un atout majeur quand on interagit avec des API nécessitant une authentification continue :

session = requests.Session()
session.headers.update({"User-Agent": "PythonBot/1.0"})
session.get("https://httpbin.org/cookies/set/sessioncookie/123456")
response = session.get("https://httpbin.org/cookies")
print(response.text)

Cette maîtrise avancée garantit des échanges performants et sécurisés dans les projets web modernes.

apprenez à envoyer des requêtes http en python avec la bibliothèque requests, en utilisant les méthodes get et post pour interagir avec des api et récupérer des données.

Exploiter Python Requests pour télécharger des fichiers ou manipuler les cookies

Au-delà des échanges classiques, la bibliothèque requests permet également de récupérer des fichiers binaires tels qu’images ou documents par une simple requête GET.

url = "https://httpbin.org/image/png"
response = requests.get(url)
with open("image.png", "wb") as f:
    f.write(response.content)

La gestion des cookies est aussi intégrée, ce qui facilite la conservation des sessions utilisateurs ou les interactions avec des sites contrôlés.

response = requests.get("https://httpbin.org/cookies/set?test=123")
print(response.cookies["test"])  # Affiche 123

Envoyer des cookies dans une requête est également simple :

cookies = {"session": "abc123"}
response = requests.get("https://httpbin.org/cookies", cookies=cookies)
print(response.json())

Ce niveau de contrôle sur les données d’état améliore significativement l’intégration des clients Python avec des interfaces web dynamiques, notamment dans le cadre du web scraping en Python.

apprenez à envoyer des requêtes http en python en utilisant la bibliothèque requests, avec des exemples clairs pour les méthodes get et post.

Quelle est la différence principale entre GET et POST en HTTP ?

GET demande des données au serveur en passant les paramètres dans l’URL, tandis que POST envoie des données dans le corps de la requête, offrant plus de sécurité et la possibilité d’envoyer des données volumineuses.

Comment installer la bibliothèque requests en Python ?

Requests s’installe facilement via la commande ‘pip install requests’ dans votre terminal ou invite de commande.

Comment gérer les erreurs HTTP avec requests ?

En utilisant response.status_code pour vérifier la réponse, la méthode raise_for_status() pour détecter les erreurs, et en utilisant les blocs try-except pour gérer les exceptions réseau comme Timeout.

Peut-on envoyer des données JSON avec requests ?

Oui, en utilisant le paramètre ‘json=’ dans la méthode post(), ce qui permet d’envoyer directement un objet JSON au serveur.

Pourquoi utiliser des sessions avec requests ?

Les sessions maintiennent les cookies et en-têtes entre plusieurs requêtes, ce qui est utile pour les API nécessitant une authentification ou des interactions plus complexes.

Auteur :
Anthony

Passionné par le web et le référencement naturel depuis plus de dix ans, j'allie expertise en développement et stratégie SEO pour accompagner les entreprises dans leur croissance digitale.

Voir tous ses articles →

Laisser un commentaire