Beim Anlegen einer neuen Konfiguration in Spring Boot bekam ich die Fehlermeldung, dass der Medientyp nicht unterstützt wird.
Die Antwort vom Server sah in etwa so aus.
POST http://localhost:8080/v1/config/create HTTP/1.1 415 Accept: application/json Content-Type: application/json Transfer-Encoding: chunked Date: Mon, 14 Feb 2022 12:32:28 GMT Keep-Alive: timeout=60 Connection: keep-alive { "timestamp": "2022-02-14T12:32:28.222+00:00", "status": 415, "error": "Unsupported Media Type", "path": "/v1/config/create" }
Ich wollte ein neues Objekt mittels JSON zum Server senden, die Funktion wollte sich der Sache jedoch nicht annehmen. Mein erster Fehler war, dass die Funktion nicht richtig annotiert war. Hier musste ich den „consumes“ inklusive aktzeptiertem Datenformat angeben.
@PostMapping(value = "/create", consumes = {MediaType.APPLICATION_JSON_VALUE}) public ResponseEntity createConfig(@RequestBody Config config) { }
Der Fehler blieb bestehen bei meinem Test mit dem HTTP-Client in IntelliJ. Nach einigem probieren fehlte hier der Header „Content-Type: application/json
“ in der Anfrage.
POST http://localhost:8080/v1/config/create Content-Type: application/json { "id": 0, "name": "Keg machine", "ip": "192.168.1.12", "port": 443, "comment": "Keg machine access", "location": "Elronds house", "apiKey": "key" }
Anschließend klappte es.