2017-01-10 18 views
0

Если пары строка заголовка Accept имеет несколько типов носителей, которые являются приемлемыми, такими как:JAX-RS Accept заголовок пары compatibality

text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 

Как найти, если тип среды совместит с одним объектом MediaType?

Если заголовок Accept содержит один тип носителя, он работает.

MediaType.valueOf(acceptHeaderparam).isCompatible(MediaType.valueOf(contentType) 

Есть ли способ, например MediaType.isCompatible(String)?

ПРИМЕЧАНИЕ: заголовок@Consumes не может использоваться, поскольку поддерживаются пользовательские типы носителей, и все типы носителей не могут быть определены во время компиляции.

ответ

0

Что-то вроде этого?

public boolean isCompatible(String mediaTypeStr, String contentType) { 
    MediaType type = MediaType.valueOf(contentType); 
    return Arrays.stream(mediaTypeStr.split(",")) 
       .map(t -> MediaType.valueOf(t.trim())) 
       .anyMatch(type::isCompatible); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^