Conteúdo

    Resposta do servidor 415 Unsupported Media Type

    Código de Status HTTP 415 (Unsupported Media Type)

    O código de status HTTP 415 é retornado pelo servidor quando ele não pode processar a solicitação devido a um tipo de mídia não suportado. Isso ocorre frequentemente quando o cliente tenta enviar dados em um formato que o servidor não consegue entender ou processar. Vamos explorar mais detalhadamente o que isso significa e como lidar com essa situação.

    415 - Unsupported Media Type

    Razões para o surgimento do código 415

    • Cabeçalho Content-Type incorreto

      APIs diferentes suportam diferentes formatos de dados. Se o cabeçalho Content-Type enviado não corresponder ao formato esperado, o servidor retornará o código 415.

    • Falta de suporte ao formato

      O servidor pode não suportar o formato de dados enviado. Por exemplo, se uma API espera JSON, mas o cliente envia XML, o erro 415 será gerado.

    • Erros na codificação dos dados

      Uma codificação de dados incorreta ou uma estrutura de solicitação inadequada também podem resultar em um erro 415.

    Exemplos práticos

    1. Formato JSON

      Exemplo: Um cliente envia JSON, mas define o cabeçalho Content-Type como text/plain. Nesse caso, o servidor não conseguirá processar a solicitação e retornará o código 415.

    2. Formato XML

      Exemplo: Se um cliente tenta enviar dados no formato XML, mas o servidor espera dados em JSON, o código 415 será retornado.

    3. Arquivos inválidos

      Exemplo: Se uma API espera uma imagem no formato JPEG, mas o cliente envia um arquivo PNG com um cabeçalho incorreto, o servidor retornará 415.

    Correção do erro 415 em diferentes linguagens de programação

    A seguir, apresentamos como lidar com o erro 415 em algumas das principais linguagens de programação.

    Linguagem Exemplo de código
    JavaScript (Node.js)
    
    const axios = require('axios');
    
    axios.post('https://example.com/api', data, {
        headers: {
            'Content-Type': 'application/json'
        }
    })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        if (error.response && error.response.status === 415) {
            console.error('Unsupported Media Type: Verifique o cabeçalho Content-Type');
        }
    });
                    
    Python (Requests)
    
    import requests
    
    headers = {
        'Content-Type': 'application/json'
    }
    response = requests.post('https://example.com/api', json=data, headers=headers)
    
    if response.status_code == 415:
        print('Unsupported Media Type: Verifique o cabeçalho Content-Type')
                    
    Java (HttpURLConnection)
    
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class HttpClient {
        public static void main(String[] args) {
            try {
                URL url = new URL("https://example.com/api");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setRequestProperty("Content-Type", "application/json");
                connection.setDoOutput(true);
    
                OutputStream os = connection.getOutputStream();
                os.write(data.getBytes());
                os.flush();
                os.close();
    
                if (connection.getResponseCode() == 415) {
                    System.out.println("Unsupported Media Type: Verifique o cabeçalho Content-Type");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }