Envoyer une requête HTTP avec requests 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

Installation et configuration de la bibliothèque requests

La bibliothèque requests n'est pas incluse dans la distribution standard de Python, vous devez donc l'installer séparément. Exécutez la commande suivante dans votre terminal :

pip install requests

Pour vérifier que l'installation a réussi, exécutez :

import requests
print(requests.__version__)

Que sont les requêtes HTTP et pourquoi utiliser la bibliothèque requests

HTTP (HyperText Transfer Protocol) est un protocole de transfert de données entre un client et un serveur. requests est une bibliothèque Python externe qui simplifie considérablement l'envoi de requêtes HTTP par rapport aux modules intégrés urllib.

Principaux avantages de requests

  • Simplicité d'utilisation et lisibilité du code
  • Prise en charge de toutes les méthodes HTTP (GET, POST, PUT, DELETE, PATCH)
  • Gestion automatique des données JSON
  • Prise en charge intégrée des cookies et des sessions
  • Configuration flexible des en-têtes et des paramètres
  • Gestion des erreurs et des exceptions
  • Prise en charge des serveurs proxy et des certificats SSL

Les principales méthodes HTTP avec des exemples pratiques

Requêtes GET : récupération de données

La requête GET est utilisée pour récupérer des données depuis un serveur sans les modifier.

import requests

# Requête GET simple
response = requests.get('https://api.github.com')
print(response.status_code)  # 200
print(response.text)         # Contenu de la réponse

Transmission de paramètres dans une requête GET

# Transmission de paramètres via un dictionnaire
params = {
    'q': 'python',
    'sort': 'stars',
    'order': 'desc',
    'page': 1
}

response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url)  # Vérifions l'URL finale avec les paramètres

Requêtes POST : envoi de données

La requête POST est utilisée pour envoyer des données vers un serveur et créer de nouvelles ressources.

# Requête POST avec des données de formulaire
data = {
    'username': 'test_user',
    'password': 'secure_password',
    'email': 'test@example.com'
}

response = requests.post('https://httpbin.org/post', data=data)
print(response.json())

Requête POST avec des données JSON

# Envoi de données JSON
json_data = {
    'title': 'Nouvel article',
    'body': 'Contenu de l\'article',
    'userId': 1
}

response = requests.post(
    'https://jsonplaceholder.typicode.com/posts',
    json=json_data
)
print(response.json())

Requêtes PUT : mise à jour de données

La requête PUT est utilisée pour mettre à jour complètement des ressources existantes.

update_data = {
    'id': 1,
    'title': 'Titre mis à jour',
    'body': 'Nouveau contenu',
    'userId': 1
}

response = requests.put(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=update_data
)
print(f"Statut : {response.status_code}")
print(response.json())

Requêtes PATCH : mise à jour partielle

PATCH est utilisé pour mettre à jour partiellement une ressource.

patch_data = {'title': 'Titre partiellement mis à jour'}

response = requests.patch(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=patch_data
)
print(response.json())

Requêtes DELETE : suppression de données

La requête DELETE est utilisée pour supprimer des ressources sur le serveur.

response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Statut de suppression : {response.status_code}")

Gestion des en-têtes HTTP

Les en-têtes contiennent des métadonnées sur la requête et permettent de transmettre des informations supplémentaires au serveur.

headers = {
    'User-Agent': 'Mozilla                

Blogs

Book Recommendations