Requests – gestion des requêtes HTTP en Python

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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)                    

Recommendations