2017-01-10 64 views
0

如果Accept头PARAM串具有多个媒体类型是可以接受的,例如:JAX-RS Accept报头PARAM 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); 
} 
相关问题