Introduction à la bibliothèque Requests
Requests est une bibliothèque Python simple et puissante pour effectuer des requêtes HTTP. Elle offre une interface intuitive pour interagir avec les API REST, télécharger des données depuis des pages web, envoyer des fichiers et gérer l'authentification. Grâce à sa syntaxe concise et ses fonctionnalités étendues, Requests est devenue la référence incontournable parmi les clients HTTP en Python.
Créée par Kenneth Reitz en 2011, la bibliothèque Requests a pour objectif de rendre les requêtes HTTP en Python aussi simples et agréables que possible. Construite sur urllib3, elle fournit une API de haut niveau pour manipuler le protocole HTTP.
Avantages de Requests par rapport à urllib
- Syntaxe plus lisible — méthodes et paramètres intuitifs
- Gestion automatique des cookies et redirections — aucune configuration supplémentaire nécessaire
- Traitement simplifié du JSON, des en-têtes et des formulaires — prise en charge native des formats courants
- Support des sessions, proxys et authentifications — ensemble complet d'outils pour les services web
- Prise en charge de toutes les méthodes HTTP — GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
- Décodage automatique du contenu — gestion intelligente des encodages
- Support SSL intégré — connexions sécurisées par défaut
Installation et importation de la bibliothèque
Installation avec pip :
pip install requests
Pour mettre à jour vers la dernière version :
pip install --upgrade requests
Importation de la bibliothèque :
import requests
Méthodes principales des requêtes HTTP
Envoi de requêtes GET
Les requêtes GET permettent de récupérer des données depuis un serveur :
response = requests.get('https://api.example.com/data')
print(response.status_code) # Code de réponse
print(response.text) # Texte de la réponse
Récupération de données JSON :
response = requests.get('https://api.example.com/users')
data = response.json() # Conversion automatique en dictionnaire Python
print(data)
Envoi de requêtes POST
Les requêtes POST servent à envoyer des données vers un serveur :
payload = {'username': 'admin', 'password': '123'}
response = requests.post('https://api.example.com/login', data=payload)
Envoi de données JSON :
user_data = {'name': 'Jean', 'email': 'jean@exemple.com'}
response = requests.post('https://api.example.com/users', json=user_data)
Utilisation de PUT, PATCH et DELETE
# PUT - mise à jour complète d'une ressource
requests.put('https://api.example.com/user/1', json={'name': 'Nouveau Nom', 'email': 'nouveau@exemple.com'})
# PATCH - mise à jour partielle d'une ressource
requests.patch('https://api.example.com/user/1', json={'active': True})
# DELETE - suppression d'une ressource
requests.delete('https://api.example.com/user/1')
# HEAD - récupération des en-têtes uniquement
response = requests.head('https://api.example.com/user/1')
print(response.headers)
Gestion des paramètres de requête
Les paramètres d'URL peuvent être transmis via un dictionnaire :
params = {'search': 'python', 'limit': 10, 'page': 1}
response = requests.get('https://api.example.com/search', params=params)
print(response.url) # Affiche l'URL complète avec les paramètres
Il est également possible de passer des paramètres sous forme de liste de tuples :
params = [('tag', 'python'), ('tag', 'web'), ('limit', 20)]
response = requests.get('https://api.example.com/posts', params=params) Aussi dans la bibliothèque
GraphQL en PHP : Guide complet de la bibliothèque webonyx/graphql-php
node-cron : Planificateur de tâches JavaScript
Mockery PHP : guide complet avec exemples et tutoriel
Surveillance des applications Go : bibliothèques et outils
Hibernate ORM : Un outil puissant pour travailler avec les bases de données en Java