Retour au cours

requests et HTTP : appels d'API, json, gestion d'erreurs

requests simplifie les appels HTTP : GET, POST, envoi de JSON, etc.

objectifs

  • faire une requête GET et lire la réponse
  • envoyer des données JSON en POST
  • gérer les erreurs réseau et HTTP

explication détaillée

  • requests.get(url, params={})
  • requests.post(url, json={})
  • vérifier r.status_code et r.raise_for_status()
  • r.json() pour parser JSON

exemples exécutables

import requests

try:
    r = requests.get("https://api.github.com/repos/python/cpython")
    r.raise_for_status()
    data = r.json()
    print(data["full_name"], data["stargazers_count"])
except requests.RequestException as e:
    print("Erreur HTTP:", e)

bonnes pratiques

  • toujours timeout= pour éviter les blocages
  • gérer exceptions RequestException
  • limiter le nombre de requêtes (respecter API)

pièges courants

  • oublier raise_for_status()
  • traiter comme succès un code 4xx/5xx

exercices

  1. récupérer la météo via une API publique et afficher la température.
  2. envoyer un JSON de test en POST vers httpbin.org/post.
  3. gérer proprement une erreur 404.