Я хочу разобрать заголовок HTTP accept в Spring, чтобы определить, могу ли я отправить обратно JSON. Я пытаюсь с помощью следующего кода.
class MediaTypeUtil {
private final static Logger logger = LoggerFactory.getLogger(MediaTypeUtil.class);
static boolean acceptsJson(HttpServletRequest request) {
try {
String accept = request.getHeader("Accept");
MediaType requestType = MediaType.valueOf(accept);
return MediaType.APPLICATION_JSON.isCompatibleWith(requestType);
} catch (InvalidMediaTypeException e) {
logger.debug("MediaType parsing error",e);
return false;
}
}
}
Когда приходит запрос со значением заголовка подтверждения application/json, application/javascript, text/javascript, text/json
Я получаю исключение
Caused by: org.springframework.util.InvalidMimeTypeException: Invalid mime type "application/json, application/javascript, text/javascript, text/json": Invalid token character ',' in token "json, application/javascript, text/javascript, text/json"
at org.springframework.util.MimeTypeUtils.parseMimeTypeInternal(MimeTypeUtils.java:262)
Этот код используется из фильтр сервлетов, поэтому я не могу полагаться на аннотации Spring MVC.
Есть ли у Spring метод для анализа заголовка приема и определения, совместим ли он с указанным c типом носителя?