0

如果Accept标头参数字符串具有多种可接受的媒体类型,例如:

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

如何查找媒体类型是否与单个 MediaType 对象兼容?

如果Accept标头包含单个媒体类型,则它可以工作。

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

有没有什么方法比如MediaType.isCompatible(String)

注意: @Consumes无法使用 header,因为支持自定义媒体类型,并且无法在编译时确定所有媒体类型。

4

1 回答 1

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);
}
于 2017-01-10T08:06:43.133 回答