Request Body Format

Hello everyone,
a quick question, I was under the impression reading the documentation that the request.body.as methods would convert to the desired format regardless from the input format, which can be of any kind, depending who the API caller is.

System.out.println(“request.getHeaders().toMap():”+request.getHeaders().toMap());
System.out.println(“request.body().asJson():”+request.body().asJson());
System.out.println(“request.body().asFormUrlEncoded():”+request.body().asFormUrlEncoded());

request.getHeaders().toMap():{Accept=[/], Accept-Encoding=[gzip, deflate], Accept-Language=[en-US,en;q=0.5], Authorization=[Bearer], Connection=[keep-alive], Content-Length=[20], Content-Type=[application/x-www-form-urlencoded]…}
request.body().asJson():null
request.body().asFormUrlEncoded():{pid=[Ljava.lang.String;@618c3dfb, className=[Ljava.lang.String;@50e5511b}

Am I forced to do, in every controller method, a programmatic check of which one was received? Wouldn’t it be easier if asJson for example would do the content-type check itself and return a jsonnode regardless if the input was a url-form-encoded?

Thank you,
Best regards,
Roberto