繁体   English   中英

JAX-RS接受标头参数兼容性

[英]JAX-RS Accept header param compatibality

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

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

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

如果“ Accept标头包含单个媒体类型,则它将起作用。

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

是否有诸如MediaType.isCompatible(String)

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

像这样吗

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM