Serverantwort 415 Unsupported Media Type
HTTP-Statuscode 415 (Unsupported Media Type)
Der HTTP-Statuscode 415 tritt auf, wenn ein Server einen Anfrage abweist, weil der gesendete Medientyp nicht unterstützt wird. Dies geschieht häufig, wenn ein Client versucht, Daten in einem Format zu senden, das der Server nicht verarbeiten kann. Um die Hintergründe besser zu verstehen, betrachten wir die Ursachen, Beispiele und Lösungsansätze für diesen Statuscode.
Ursachen für den Statuscode 415
- Falscher Content-Type-Header: Verschiedene APIs unterstützen unterschiedliche Datenformate. Wenn der gesendete Header
Content-Type
nicht dem erwarteten Format entspricht, gibt der Server den Status 415 zurück. - Fehlende Unterstützung für das Format: Der Server unterstützt möglicherweise einfach das gesendete Datenformat nicht. Zum Beispiel, wenn die API JSON erwartet und der Client XML sendet.
- Fehler bei der Datenkodierung: Falsche Kodierung der Daten oder falsche Struktur der Anfrage können ebenfalls zu einem Fehler 415 führen.
Praktische Beispiele
- JSON-Format: Wenn ein Client JSON sendet, aber den Header
Content-Type
auftext/plain
setzt, kann der Server diese Anfrage nicht verarbeiten und gibt 415 zurück. - XML-Format: Ein Client versucht, Daten im XML-Format zu senden, während der Server Daten im JSON-Format erwartet. Auch in diesem Fall wird der Status 415 zurückgegeben.
- Ungültige Dateien: Wenn eine API ein Bild im JPEG-Format erwartet und der Client eine PNG-Datei mit einem falschen Header sendet, wird der Server 415 zurückgeben.
Beispiel | Erwarteter Content-Type | Gesendeter Content-Type | Ergebnis |
---|---|---|---|
JSON-Daten | application/json | text/plain | 415 Unsupported Media Type |
XML-Daten | application/xml | application/json | 415 Unsupported Media Type |
JPEG-Bild | image/jpeg | image/png | 415 Unsupported Media Type |
Fehlerbehebung des Status 415 in verschiedenen Programmiersprachen
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: Überprüfen Sie den Content-Type-Header');
}
});
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: Überprüfen Sie den Content-Type-Header')
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: Überprüfen Sie den Content-Type-Header");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}