Leçon 7 / 9 — Chapitre 7: Requêtes HTTP et APIs
Timeout et exceptions réseau
Un serveur distant peut ne jamais répondre (panne, réseau lent...). Sans précaution, requests.get() peut alors attendre indéfiniment. L'argument timeout= fixe une durée maximale d'attente, en secondes.
import requests
try:
reponse = requests.get("https://api.exemple.com/produits", timeout=5)
except requests.exceptions.Timeout:
print("Le serveur n'a pas repondu a temps")
except requests.exceptions.ConnectionError:
print("Impossible de joindre le serveur")
timeout=5 abandonne la requête après 5 secondes sans réponse, en levant une requests.exceptions.Timeout — interceptée ici avec try/except (vu dans Python Intermédiaire). requests.exceptions.ConnectionError couvre un cas différent : le serveur est injoignable dès le départ (adresse invalide, pas de connexion réseau).
Bonne pratique à retenir : toujours préciser timeout= sur un appel réseau en dehors d'un simple script exploratoire, pour éviter qu'un programme reste bloqué indéfiniment sur une requête qui ne répond jamais.
Ces deux exceptions héritent toutes deux de requests.exceptions.RequestException, une exception plus générale qui peut aussi être interceptée seule pour couvrir tous les problèmes réseau d'un coup :
except requests.exceptions.RequestException as e:
print("Erreur reseau :", e)
À vous de jouer : écrivez un appel requests.get() avec timeout= et un try/except qui intercepte requests.exceptions.Timeout.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès