Connection refused

Python Erreur courante

Explication

L'erreur `ConnectionError: ... Connection refused` (souvent via `requests` ou `socket`) survient quand votre programme tente de se connecter à un serveur/port qui **n'accepte pas la connexion** : le service n'est pas démarré, l'adresse ou le port sont faux, ou un pare-feu bloque. ```python import requests requests.get("http://localhost:5000/api") # rien n'écoute sur le port 5000 # ConnectionError: HTTPConnectionPool(host='localhost', port=5000): ... Connection refused ```

Causes courantes

- **Le serveur n'est pas démarré** (ou a planté). - **Mauvais hôte ou mauvais port**. - **Pare-feu** ou groupe de sécurité qui bloque le port. - **Service pas encore prêt** (course au démarrage en tests ou avec Docker). - **Mauvais protocole** (`http` au lieu de `https`).

1. Vérifiez que le serveur écoute bien sur ce port

# Linux/macOS
ss -tlnp | grep 5000     # le port est-il en écoute ?
curl http://localhost:5000/api   # tester hors Python

2. Contrôlez hôte, port et protocole

Assurez-vous que l'URL correspond exactement au service (https, bon port, bon chemin).

3. Réessayez avec une temporisation (services qui démarrent)

import time, requests
for tentative in range(5):
    try:
        r = requests.get(url, timeout=5)
        break
    except requests.ConnectionError:
        time.sleep(2)   # laisser le service démarrer

4. En production : gérez l'indisponibilité

Encadrez l'appel et prévoyez un repli ou un message clair plutôt qu'un plantage :

try:
    r = requests.get(url, timeout=5)
except requests.ConnectionError:
    logging.error("Service injoignable : %s", url)

Comment prevenir cette erreur

- **Vérifiez l'état du service** (health check) avant de l'appeler. - **Mettez en place des reprises** (retry avec backoff) pour les services qui démarrent lentement. - **Centralisez la configuration** (hôte/port) pour éviter les fautes de frappe. - Référence : [requests — Exceptions](https://requests.readthedocs.io/en/latest/api/#exceptions).

Besoin d'aide sur votre projet ?

Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.

Nous contacter

Questions frequentes

« Connection refused » ou « Connection timed out », quelle différence ?
« refused » = la machine est joignable mais **rien n'écoute** sur le port (service arrêté). « timed out » = la machine **ne répond pas** du tout (mauvaise adresse, pare-feu qui jette les paquets, réseau coupé).
Mes tests d'intégration échouent au démarrage, comment faire ?
Le service n'est pas encore prêt quand le test se lance. Ajoutez une boucle de reprise (retry) qui attend que le port réponde avant de lancer les requêtes.

Erreurs similaires

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.