PaliSkill
Python avancé

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