Code d'erreur 415 : Type de média non pris en charge - Erreur de format

INEZA Felin-Michel

INEZA Felin-Michel

14 October 2025

Code d'erreur 415 : Type de média non pris en charge - Erreur de format

Vous intégrez une nouvelle API. Vous élaborez soigneusement une requête JSON avec toutes les bonnes données, l'envoyez, et au lieu de la réponse de succès attendue, vous recevez une erreur frustrante : 415 Unsupported Media Type. Vous vérifiez votre authentification, l'URL de votre point de terminaison, votre charge utile de données – tout semble correct. Alors, qu'est-ce qui n'a pas fonctionné ?

Le problème ne réside probablement pas dans ce que vous avez envoyé, mais dans la manière dont vous avez indiqué au serveur ce que vous envoyiez. Ce code de statut courant mais souvent déroutant concerne les ruptures de communication dans le format des données.

L'erreur 415 est la manière dont le serveur dit : « Je comprends que vous essayez de m'envoyer des données, mais je ne parle pas cette langue. Je m'attendais à ce que vous les envoyiez dans un format différent que je puisse réellement traiter. »

Si vous êtes un développeur travaillant avec des API – que vous les construisiez ou les consommiez – comprendre le code de statut 415 est crucial pour des intégrations fluides et pour éviter des sessions de débogage frustrantes.

Dans ce guide détaillé, nous explorerons ce que signifie le code de statut **415 Unsupported Media Type**, pourquoi il se produit, les scénarios typiques et les moyens pratiques de le corriger ou de l'éviter. Que vous soyez un développeur gérant des intégrations API ou curieux de savoir comment fonctionne la communication web, cet article vous aidera à maîtriser les erreurs 415.

💡
Si vous voulez vous assurer que vos requêtes API n'échouent jamais à cause de types de médias incorrects, essayez Apidog dès aujourd'hui. Il est gratuit à télécharger, simple à utiliser et aide les développeurs à détecter instantanément les incompatibilités de type de contenu. Avec Apidog, vous pouvez simuler différents en-têtes, exécuter des tests automatisés et collaborer avec votre équipe, le tout en un seul endroit.
bouton

Bien, plongeons-nous et dissipons la confusion autour de l'erreur HTTP 415 une fois pour toutes.

Le Problème : Parler la Langue du Serveur

Imaginez que vous envoyiez une lettre à quelqu'un qui ne lit que le français. Vous pourriez écrire la lettre anglaise la plus éloquente et parfaitement structurée, mais si le destinataire ne comprend pas l'anglais, votre message sera inutile. L'erreur 415 est l'équivalent numérique de ce scénario.

Les serveurs web sont souvent conçus pour comprendre des formats de données spécifiques. Ils doivent savoir dans quelle « langue » les données entrantes sont écrites afin de pouvoir les analyser et les traiter correctement. L'en-tête Content-Type est la manière dont le client indique au serveur le format des données.

Que Signifie Réellement HTTP 415 Unsupported Media Type ?

Le code de statut 415 Unsupported Media Type indique que le serveur comprend la requête, mais qu'il refuse de l'accepter car le format de la charge utile (type de média) est dans un format non pris en charge par le serveur pour la ressource demandée.

En termes plus simples, votre client (comme Postman, Apidog ou votre navigateur) envoie des données dans un format que le serveur ne comprend pas ou n'est pas configuré pour traiter.

Le serveur dit essentiellement : « J'ai reçu vos données, mais je ne peux pas les traiter car elles sont dans un format que je ne comprends pas ou que je ne prends pas en charge pour ce point de terminaison particulier. »

Une réponse 415 typique ressemble à ceci :

HTTP/1.1 415 Unsupported Media TypeContent-Type: application/json
{
  "error": "Unsupported Media Type",
  "message": "The request payload format is not supported.",
  "supported_types": ["application/json", "application/xml"]
}

Cela vous dit : « Hé ! J'ai reçu votre requête, mais je ne peux pas traiter ce type de contenu. »

Cela concerne le plus souvent la valeur de l'en-tête **Content-Type** dans la requête HTTP, spécifiant le format des données envoyées (comme JSON, XML ou les données de formulaire multiparties). Certains serveurs peuvent fournir des informations plus utiles sur les formats qu'ils prennent en charge, tandis que d'autres peuvent renvoyer un message d'erreur plus générique.

Plongée Profonde : La Définition Technique (pour les Curieux)

Selon la **spécification HTTP/1.1 (RFC 7231)**, la Section 6.5.13 définit le code de statut 415 comme suit :

« Le code de statut 415 (Unsupported Media Type) indique que le serveur d'origine refuse de traiter la requête car la charge utile est dans un format non pris en charge par cette méthode sur la ressource cible. »

Le point clé ici :

Le Cœur du Problème : L'En-tête Content-Type

L'en-tête Content-Type est l'information cruciale qui détermine si vous obtiendrez une erreur 415 ou une réponse réussie. Cet en-tête indique au serveur le type de données que vous envoyez dans le corps de la requête.

Voici les types de contenu les plus courants que vous rencontrerez :

Valeurs Courantes de Content-Type :

Pour les API JSON :

Pour les Données de Formulaire :

Pour XML :

Pour le Texte Brut :

Comment l'Erreur 415 Se Produit : Une Analyse Étape par Étape

Examinons exactement ce qui se passe lorsqu'une erreur 415 se produit.

Étape 1 : Le Client Envoie une Requête

Une application cliente envoie une requête à un point de terminaison d'API serveur. Par exemple, disons que nous essayons de créer un nouvel utilisateur :

POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/xmlContent-Length: 125
<user><name>John Doe</name><email>john@example.com</email></user>

Étape 2 : Le Serveur Vérifie le Content-Type

Le serveur reçoit la requête et examine l'en-tête Content-Type. Il voit application/xml et vérifie sa configuration pour le point de terminaison /api/users.

Étape 3 : Le Serveur Réalise le Problème

Le point de terminaison /api/users du serveur est configuré pour n'accepter que application/json. Il n'a pas de parseur XML configuré pour ce point de terminaison, et il ne sait pas comment gérer les données entrantes.

Étape 4 : La Réponse 415

Au lieu d'essayer de traiter les données mal formées (ce qui pourrait entraîner des erreurs ou des problèmes de sécurité), le serveur répond avec un code de statut 415 Unsupported Media Type.

Étape 5 : Le Client Reçoit l'Erreur

L'application cliente reçoit la réponse 415 et doit la gérer de manière appropriée – généralement en corrigeant l'en-tête Content-Type et en renvoyant la requête.

Scénarios Courants Où Vous Pourriez Rencontrer une Erreur 415

1. Téléchargement de Fichiers dans les API

Si vous essayez de télécharger une image en utilisant application/json au lieu de multipart/form-data, le serveur ne comprendra pas le contenu du fichier.

2. API Personnalisées avec Validation Stricte

Les API avec une validation de schéma stricte rejettent toute requête qui ne correspond pas à leurs règles.

3. Applications Mobiles Utilisant des SDK Obsolètes

Parfois, les anciens SDK envoient des requêtes avec des en-têtes obsolètes, que les API modernes ne prennent plus en charge.

4. Requêtes Cross-Origin (Problèmes CORS)

Certaines configurations CORS peuvent restreindre les types de contenu acceptés, provoquant indirectement une réponse 415.

Le Rôle de l'En-tête Content-Type

L'en-tête **Content-Type** dans les requêtes HTTP indique au serveur le type de données que le client envoie.

Par exemple :

Si cet en-tête est manquant ou indique quelque chose que le serveur ne peut pas gérer, vous verrez probablement une réponse 415.

Scénarios Réels Causant des Erreurs 415

Scénario 1 : En-tête Content-Type Manquant

POST /api/users HTTP/1.1Host: api.example.com

{"name": "John Doe", "email": "john@example.com"}

De nombreux serveurs rejetteront cela car il n'y a pas d'en-tête Content-Type leur indiquant comment interpréter les données.

Scénario 2 : Content-Type Incorrect pour les Données

POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/x-www-form-urlencoded

{"name": "John Doe", "email": "john@example.com"}

L'en-tête indique qu'il s'agit de données de formulaire, mais le corps est du JSON. Cette incompatibilité perturbe le serveur.

Scénario 3 : Le Serveur ne Prend Pas en Charge le Format

POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/xml
<user><name>John</name></user>

Le serveur pourrait ne prendre en charge que le JSON pour ce point de terminaison, même si le XML est bien formé.

Tester la Gestion du Content-Type avec Apidog

Nouvelle Interface Utilisateur Apidog

Parlons de la façon dont **Apidog** peut vous faciliter la vie face à ces erreurs. Tester différents types de contenu et s'assurer que votre API les gère correctement est là où Apidog excelle. Il rend incroyablement facile de tester ces scénarios sans écrire de code complexe.

Avec Apidog, vous pouvez :

  1. Définir Facilement les En-têtes Content-Type : Utilisez l'interface intuitive d'Apidog pour choisir parmi les types de contenu courants ou spécifier des types personnalisés.
  2. Tester Plusieurs Formats : Testez rapidement le même point de terminaison avec différents types de contenu (JSON, XML, données de formulaire) pour voir comment votre serveur répond.
  3. Valider les Réponses d'Erreur : Assurez-vous que votre API renvoie des réponses 415 appropriées avec des messages d'erreur utiles lors de la réception de formats non pris en charge.
  4. Tester les Cas Limites : Expérimentez avec des types de contenu mal formés, des en-têtes manquants ou des données incompatibles pour vous assurer que votre API les gère avec élégance.
  5. Automatiser les Tests de Content-Type : Créez des suites de tests qui vérifient automatiquement que votre API accepte correctement les formats pris en charge et rejette correctement ceux qui ne le sont pas.
bouton

Par exemple, lorsque vous configurez une requête POST dans Apidog, il applique automatiquement le Content-Type correct en fonction du type de corps de votre requête (JSON, XML, données de formulaire, etc.).

Cela signifie moins de surprises et plus d'erreurs 415 ruinant vos sessions de test. Ce test proactif peut économiser des heures de débogage et garantir que votre API se comporte de manière prévisible.

415 vs. Autres Erreurs 4xx : Connaître la Différence

Il est important de distinguer 415 des autres erreurs client :

Meilleures Pratiques pour Gérer les Erreurs 415

Pour les Consommateurs d'API (Développeurs Clients) :

Pour les Fournisseurs d'API (Développeurs Serveurs) :

Exemple de Réponse 415 Bien Conçue :

HTTP/1.1 415 Unsupported Media TypeContent-Type: application/json
{
  "error": "unsupported_media_type",
  "message": "This endpoint only accepts application/json payloads.",
  "supported_types": ["application/json"],
  "documentation": "<https://api.example.com/docs/content-types>"
}

Erreurs Courantes de Content-Type Causant des Erreurs 415

Voici quelques pièges dans lesquels les développeurs tombent fréquemment :

Erreur Description Exemple
Utilisation d'un nom d'en-tête incorrect Faute de frappe ou problème de casse contenttype au lieu de Content-Type
Envoi de données de formulaire au lieu de JSON Le serveur n'attend que du JSON application/x-www-form-urlencoded
Oubli du charset Informations d'encodage manquantes application/json; charset=utf-8
Envoi d'un corps vide Charge utile requise manquante POST /api sans données
Utilisation de types de fichiers non pris en charge Mauvais format de téléchargement Téléchargement d'un .exe au lieu d'un .png

Ces erreurs peuvent sembler mineures, mais elles peuvent entraîner des échecs de requête majeurs.

Correctifs Courants pour les Erreurs 415

Si vous rencontrez une erreur 415, voici les solutions les plus courantes :

Ajouter l'En-tête Content-Type Manquant :

POST /api/users HTTP/1.1Content-Type: application/json

Corriger l'En-tête Content-Type :

# Avant (incorrect) :
Content-Type: text/plain
# Après (correct) :
Content-Type: application/json

Convertir Vos Données vers un Format Pris en Charge :

Si le serveur n'accepte que le JSON, assurez-vous d'envoyer du JSON correct, et non du XML ou des données de formulaire.

Vérifier les Fautes de Frappe :

# Incorrect :
Content-Type: application/jason

# Correct :
Content-Type: application/json

Considérations Avancées

Négociation de Contenu

Certaines API sophistiquées prennent en charge la négociation de contenu, où le client peut spécifier les formats qu'il peut accepter en utilisant l'en-tête `Accept` :

GET /api/users/123 HTTP/1.1Accept: application/json, application/xml;q=0.9

Cela indique au serveur : « Je préfère le JSON, mais je peux accepter le XML si nécessaire. »

Paramètre Charset

Pour les formats basés sur du texte, vous pourriez avoir besoin de spécifier l'encodage des caractères :

Content-Type: application/json; charset=utf-8

Conclusion : L'Importance d'une Communication Claire

Le code de statut HTTP 415 Unsupported Media Type met en lumière un aspect fondamental de la communication web : les deux parties doivent s'entendre sur la « langue » qu'elles utilisent pour échanger des données. Il ne suffit pas d'envoyer les bonnes données, il faut les envoyer dans le bon format et annoncer correctement ce format.

L'erreur HTTP 415 Unsupported Media Type est un élément clé pour garantir que les serveurs ne traitent que les formats de données attendus et compatibles. Gérer correctement les en-têtes Content-Type, suivre les spécifications API et tester avec des outils comme Apidog peut réduire drastiquement ces erreurs.

Comprendre et gérer correctement les erreurs `415` fera de vous un consommateur d'API plus efficace et un meilleur concepteur d'API. En prêtant attention aux types de contenu et en assurant une communication claire entre les clients et les serveurs, vous pouvez éviter ces erreurs frustrantes et construire des intégrations plus robustes. N'oubliez pas que les API prospèrent grâce à une communication claire entre le client et le serveur. S'ils parlent la même « langue » (dans ce cas, le type de média), tout fonctionne sans accroc.

Ainsi, la prochaine fois que vous rencontrerez une erreur `415`, rappelez-vous que ce n'est pas une défaillance complexe du serveur, mais un simple problème de communication qui est généralement facile à corriger. Et lorsque vous construisez ou testez des API, l'utilisation d'un outil comme Apidog vous aidera à garantir que vos types de contenu sont toujours corrects, prévenant ainsi ces erreurs avant qu'elles ne se produisent.

bouton

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API