Você está se integrando a uma nova API. Você elabora cuidadosamente uma requisição JSON com todos os dados corretos, a envia e, em vez da resposta de sucesso esperada, recebe um erro frustrante: 415 Unsupported Media Type. Você verifica sua autenticação, a URL do endpoint, o payload dos dados — tudo parece correto. Então, o que deu errado?
O problema provavelmente não está no que você enviou, mas em como você informou ao servidor o que estava enviando. Este código de status comum, mas frequentemente confuso, trata-se de falhas de comunicação no formato dos dados.
O erro 415 é a forma do servidor dizer: "Eu entendo que você está tentando me enviar dados, mas eu não falo essa língua. Eu esperava que você os enviasse em um formato diferente que eu possa realmente processar."
Se você é um desenvolvedor trabalhando com APIs — seja construindo-as ou consumindo-as — entender o código de status 415 é crucial para integrações suaves e para evitar sessões frustrantes de depuração.
Neste guia detalhado, exploraremos o que o código de status 415 Unsupported Media Type significa, por que ele acontece, cenários típicos e maneiras práticas de corrigi-lo ou evitá-lo. Seja você um desenvolvedor lidando com integrações de API ou curioso sobre como funciona a comunicação web, este post o ajudará a dominar os erros 415.
Certo, vamos mergulhar e esclarecer a confusão em torno do HTTP 415 de uma vez por todas.
O Problema: Falar a Língua do Servidor
Imagine que você está enviando uma carta para alguém que só lê francês. Você poderia escrever a carta em inglês mais eloquente e perfeitamente estruturada, mas se o destinatário não entender inglês, sua mensagem será inútil. O erro 415 é o equivalente digital desse cenário.
Servidores web são frequentemente construídos para entender formatos de dados específicos. Eles precisam saber em que "linguagem" os dados de entrada estão escritos para que possam analisá-los e processá-los corretamente. O cabeçalho Content-Type é como o cliente informa ao servidor qual é o formato dos dados.
O Que o HTTP 415 Unsupported Media Type Realmente Significa?
O código de status 415 Unsupported Media Type indica que o servidor entende a requisição, mas se recusa a aceitá-la porque o formato do payload (tipo de mídia) está em um formato não suportado pelo servidor para o recurso solicitado.
Em termos mais simples, seu cliente (como Postman, Apidog ou seu navegador) está enviando dados em um formato que o servidor não entende ou não está configurado para processar.
O servidor está essencialmente dizendo: "Recebi seus dados, mas não consigo processá-los porque estão em um formato que não entendo ou não suporto para este endpoint específico."
Uma resposta 415 típica se parece com isto:
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"]
}
Isso lhe diz: “Ei! Recebi sua requisição, mas não consigo processar este tipo de conteúdo.”
Isso geralmente se relaciona com o valor do cabeçalho Content-Type na requisição HTTP, especificando o formato dos dados que estão sendo enviados (como JSON, XML ou dados de formulário multipart). Alguns servidores podem fornecer informações mais úteis sobre quais formatos eles suportam, enquanto outros podem retornar uma mensagem de erro mais genérica.
Aprofundando: A Definição Técnica (para os Curiosos)
De acordo com a especificação HTTP/1.1 (RFC 7231), a Seção 6.5.13 define o código de status 415 como:
“O código de status 415 (Unsupported Media Type) indica que o servidor de origem está se recusando a atender à requisição porque o payload está em um formato não suportado por este método no recurso de destino.”
O ponto chave aqui:
- O problema reside no tipo de mídia, não nos dados em si.
- O servidor sabe o que você está tentando enviar — ele apenas não consegue processar.
O Cerne da Questão: O Cabeçalho Content-Type
O cabeçalho Content-Type é a informação crucial que determina se você receberá um erro 415 ou uma resposta bem-sucedida. Este cabeçalho informa ao servidor o tipo de dados que você está enviando no corpo da requisição.
Aqui estão os tipos de conteúdo mais comuns que você encontrará:
Valores Comuns de Content-Type:
Para APIs JSON:
application/json- O padrão para a maioria das APIs REST modernasapplication/json; charset=utf-8- JSON com codificação de caracteres explícita
Para Dados de Formulário:
application/x-www-form-urlencoded- Formato tradicional de envio de formulários HTMLmultipart/form-data- Usado para upload de arquivos e formulários com arquivos
Para XML:
application/xml- Formato XML padrãotext/xml- Formato XML alternativo
Para Texto Simples:
text/plain- Conteúdo de texto simplestext/html- Conteúdo HTML
Como o Erro 415 Ocorre: Uma Análise Passo a Passo
Vamos analisar exatamente o que acontece quando um erro 415 ocorre.
Passo 1: O Cliente Envia uma Requisição
Um aplicativo cliente envia uma requisição para um endpoint de API do servidor. Por exemplo, digamos que estamos tentando criar um novo usuário:
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>
Passo 2: O Servidor Verifica o Content-Type
O servidor recebe a requisição e examina o cabeçalho Content-Type. Ele vê application/xml e verifica sua configuração para o endpoint /api/users.
Passo 3: O Servidor Percebe o Problema
O endpoint /api/users do servidor está configurado para aceitar apenas application/json. Ele não tem um analisador XML configurado para este endpoint e não sabe como lidar com os dados de entrada.
Passo 4: A Resposta 415
Em vez de tentar processar os dados malformados (o que poderia levar a erros ou problemas de segurança), o servidor responde com um código de status 415 Unsupported Media Type.
Passo 5: O Cliente Recebe o Erro
O aplicativo cliente recebe a resposta 415 e precisa lidar com ela adequadamente — geralmente corrigindo o cabeçalho Content-Type e reenviando a requisição.
Cenários Comuns Onde Você Pode Encontrar 415
1. Upload de Arquivos em APIs
Se você tentar fazer upload de uma imagem usando application/json em vez de multipart/form-data, o servidor não entenderá o conteúdo do arquivo.
2. APIs Personalizadas Com Validação Rígida
APIs com validação de esquema rígida rejeitam qualquer requisição que não corresponda às suas regras.
3. Aplicativos Móveis Usando SDKs Desatualizados
Às vezes, SDKs mais antigos enviam requisições com cabeçalhos desatualizados, que as APIs modernas não suportam mais.
4. Requisições Cross-Origin (Problemas de CORS)
Certas configurações de CORS podem restringir os tipos de conteúdo aceitos, causando indiretamente uma resposta 415.
O Papel do Cabeçalho Content-Type
O cabeçalho Content-Type nas requisições HTTP informa ao servidor o tipo de dados que o cliente está enviando.
Por exemplo:
application/jsonpara payloads JSON.text/xmlpara dados XML.multipart/form-datapara upload de arquivos.
Se este cabeçalho estiver faltando ou indicar algo que o servidor não consegue lidar, você provavelmente verá uma resposta 415.
Cenários do Mundo Real Que Causam Erros 415
Cenário 1: Cabeçalho Content-Type Ausente
POST /api/users HTTP/1.1Host: api.example.com
{"name": "John Doe", "email": "john@example.com"}
Muitos servidores rejeitarão isso porque não há um cabeçalho Content-Type informando como interpretar os dados.
Cenário 2: Content-Type Errado para os Dados
POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/x-www-form-urlencoded
{"name": "John Doe", "email": "john@example.com"}
O cabeçalho diz que são dados de formulário, mas o corpo é JSON. Essa incompatibilidade confunde o servidor.
Cenário 3: O Servidor Não Suporta o Formato
POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/xml
<user><name>John</name></user>
O servidor pode suportar apenas JSON para este endpoint, mesmo que o XML esteja bem formado.
Testando o Manuseio de Content-Type com Apidog

Vamos falar sobre como o Apidog pode facilitar sua vida ao lidar com esses erros. Testar diferentes tipos de conteúdo e garantir que sua API os lide corretamente é onde o Apidog se destaca. Ele torna incrivelmente fácil testar esses cenários sem escrever código complexo.
Com o Apidog, você pode:
- Configurar Facilmente Cabeçalhos Content-Type: Use a interface intuitiva do Apidog para selecionar entre tipos de conteúdo comuns ou especificar tipos personalizados.
- Testar Múltiplos Formatos: Teste rapidamente o mesmo endpoint com diferentes tipos de conteúdo (JSON, XML, dados de formulário) para ver como seu servidor responde.
- Validar Respostas de Erro: Garanta que sua API retorne respostas
415apropriadas com mensagens de erro úteis ao receber formatos não suportados. - Testar Casos Limite: Experimente tipos de conteúdo malformados, cabeçalhos ausentes ou dados incompatíveis para garantir que sua API os lide graciosamente.
- Automatizar Testes de Content-Type: Crie suítes de teste que verificam automaticamente se sua API aceita corretamente formatos suportados e rejeita adequadamente os não suportados.
Por exemplo, quando você configura uma requisição POST no Apidog, ele aplica automaticamente o Content-Type correto com base no tipo de corpo da sua requisição (JSON, XML, form-data, etc.).
Isso significa menos surpresas e nenhum erro 415 arruinando suas sessões de teste. Este teste proativo pode economizar horas de depuração e garantir que sua API se comporte de forma previsível.
415 vs. Outros Erros 4xx: Conhecendo a Diferença
É importante distinguir 415 de outros erros de cliente:
400 Bad Request: A requisição está malformada ou possui erros de sintaxe, independentemente do tipo de conteúdo.415 Unsupported Media Type: A requisição está bem formada, mas em um formato que o servidor não suporta para este endpoint.406 Not Acceptable: O oposto de415— o cliente não pode aceitar o formato de resposta que o servidor deseja enviar.
Melhores Práticas para Lidar com Erros 415
Para Consumidores de API (Desenvolvedores Cliente):
- Sempre defina o cabeçalho Content-Type correto que corresponda ao formato do corpo da sua requisição.
- Verifique a documentação da API para ver quais tipos de mídia são suportados para cada endpoint.
- Lide com erros 415 graciosamente em seu código — não presuma que o servidor aceitará qualquer formato que você enviar.
- Forneça um comportamento de fallback, se possível, como converter seus dados para um formato suportado.
Para Provedores de API (Desenvolvedores Servidor):
- Seja explícito sobre os tipos de mídia suportados em sua documentação da API.
- Retorne mensagens de erro úteis que indiquem quais tipos de mídia você suporta.
- Considere suportar múltiplos formatos se fizer sentido para sua API (por exemplo, JSON e XML).
- Use códigos de status HTTP apropriados — não use
400quando você quer dizer415.
Exemplo de uma Resposta 415 Bem Projetada:
HTTP/1.1 415 Unsupported Media TypeContent-Type: application/json
{
"error": "unsupported_media_type",
"message": "Este endpoint aceita apenas payloads application/json.",
"supported_types": ["application/json"],
"documentation": "<https://api.example.com/docs/content-types>"
}
Erros Comuns de Content-Type Que Causam 415
Aqui estão algumas armadilhas em que os desenvolvedores frequentemente caem:
| Erro | Descrição | Exemplo |
|---|---|---|
| Usar nome de cabeçalho errado | Erro de digitação ou de maiúsculas/minúsculas | contenttype em vez de Content-Type |
| Enviar dados de formulário em vez de JSON | Servidor espera apenas JSON | application/x-www-form-urlencoded |
| Esquecer charset | Informação de codificação ausente | application/json; charset=utf-8 |
| Enviar corpo vazio | Payload obrigatório ausente | POST /api sem dados |
| Usar tipos de arquivo não suportados | Formato de upload errado | Fazer upload de .exe em vez de .png |
Estes parecem pequenos, mas podem causar grandes falhas na requisição.
Soluções Comuns para Erros 415
Se você está encontrando um erro 415, aqui estão as soluções mais comuns:
Adicione o Cabeçalho Content-Type Ausente:
POST /api/users HTTP/1.1Content-Type: application/json
Corrija o Cabeçalho Content-Type:
# Antes (errado):
Content-Type: text/plain
# Depois (correto):
Content-Type: application/json
Converta Seus Dados para um Formato Suportado:
Se o servidor aceita apenas JSON, certifique-se de que você está enviando JSON adequado, não XML ou dados de formulário.
Verifique Erros de Digitação:
# Errado:
Content-Type: application/jason
# Correto:
Content-Type: application/json
Considerações Avançadas
Negociação de Conteúdo
Algumas APIs sofisticadas suportam negociação de conteúdo, onde o cliente pode especificar quais formatos ele pode aceitar usando o cabeçalho Accept:
GET /api/users/123 HTTP/1.1Accept: application/json, application/xml;q=0.9
Isso informa ao servidor: "Prefiro JSON, mas posso aceitar XML se necessário."
Parâmetro Charset
Para formatos baseados em texto, você pode precisar especificar a codificação de caracteres:
Content-Type: application/json; charset=utf-8
Conclusão: A Importância da Comunicação Clara
O código de status HTTP 415 Unsupported Media Type destaca um aspecto fundamental da comunicação web: ambas as partes precisam concordar com a "linguagem" que estão usando para trocar dados. Não basta enviar os dados corretos — você precisa enviá-los no formato certo e anunciar corretamente qual é esse formato.
O HTTP 415 Unsupported Media Type é uma parte fundamental para garantir que os servidores processem apenas formatos de dados esperados e compatíveis. Lidar corretamente com os cabeçalhos Content-Type, seguir as especificações da API e testar com ferramentas como o Apidog pode reduzir drasticamente esses erros.
Compreender e lidar adequadamente com os erros 415 o tornará um consumidor de API mais eficaz e um melhor designer de API. Ao prestar atenção aos tipos de conteúdo e fornecer comunicação clara entre clientes e servidores, você pode evitar esses erros frustrantes e construir integrações mais robustas. Lembre-se, as APIs prosperam com a comunicação clara entre o cliente e o servidor. Se eles falam a mesma "linguagem" (neste caso, tipo de mídia), tudo funciona sem problemas.
Então, da próxima vez que você encontrar um erro 415, lembre-se que não é uma falha complexa do servidor — é um problema de comunicação simples que geralmente é fácil de corrigir. E quando você estiver construindo ou testando APIs, usar uma ferramenta como o Apidog o ajudará a garantir que seus tipos de conteúdo estejam sempre corretos, prevenindo esses erros antes que aconteçam.
