Innehåll

    Serversvar 415 Unsupported Media Type

    HTTP-statuskod 415 (Unsupported Media Type)

    HTTP-statuskod 415 uppstår när servern vägrar att behandla en begäran på grund av en ogiltig mediatyp. Detta kan ske när klienten försöker skicka data i ett format som servern inte kan hantera. Det är viktigt att förstå innebörden av detta och hur man kan åtgärda problemet.

    415 - Unsupported Media Type

    Orsaker till statuskod 415

    • Felaktig Content-Type-header: Olika API:er stödjer olika datatyper, och om den skickade Content-Type-headern inte överensstämmer med det förväntade formatet, kommer servern att returnera status 415.
    • Avsaknad av stöd för format: Servern kanske helt enkelt inte stöder det dataformat som skickas. Till exempel, om API:et förväntar sig JSON men klienten skickar XML.
    • Felaktig datakodning: Felaktig kodning av data eller felaktig struktur på begäran kan också leda till fel 415.

    Praktiska exempel

    1. JSON-format: Om klienten skickar JSON men ställer in Content-Type-headern på text/plain, kan servern inte behandla begäran och returnerar 415.
    2. XML-format: Om klienten försöker skicka data i XML-format men servern förväntar sig JSON, kommer också status 415 att returneras.
    3. Ogiltiga filer: Om API:et förväntar sig en bild i JPEG-format men klienten skickar en PNG-fil med felaktig header, kommer servern att returnera 415.

    Åtgärda fel 415 i olika programmeringsspråk

    Programmeringsspråk Exempel
    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: Kontrollera Content-Type-headern');
        }
    };
                
    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: Kontrollera Content-Type-headern')
                
    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: Kontrollera Content-Type-headern");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
                

    Genom att förstå statuskod 415 och dess orsaker kan utvecklare effektivt hantera och åtgärda problem relaterade till ogiltiga mediatyper i sina API-anrop.