Принимая во внимание этот простой контроллер, кажется, что Micronaut отклоняет запросы с «415 неподдерживаемым типом носителя» на основе заголовка типа содержимого запроса в запросе GET.
@Controller
class BadController() {
@Get("/blah")
@Produces("image/svg+xml")
fun getBlah(): HttpResponse<*> {
return HttpResponse.ok("</some-svg>")
}
}
Например:
curl -v http://localhost:8080/blah -H "Content-Type: text/plain"
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8080 (#0)
> GET /blah HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Type: text/plain
>
< HTTP/1.1 415 Unsupported Media Type
< Date: Mon, 7 Jan 2019 16:31:48 GMT
< transfer-encoding: chunked
< connection: close
<
* Closing connection 0
Документ заголовка MDN с типом контента делает его звучащим так, будто заголовок даже не будет использоваться сервером для GET, потому что клиент не отправляет контент:
В запросах (таких как POST или PUT) клиент сообщает серверу, что
тип данных фактически отправляется.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type