【问题标题】:JAX-RS Accept header param compatibalityJAX-RS 接受标头参数兼容性
【发布时间】:2017-01-10 07:53:38
【问题描述】:

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

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

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

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

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

MediaType.isCompatible(String)之类的方法吗?

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

【问题讨论】:

    标签: java jax-rs http-accept-language


    【解决方案1】:

    这样的?

    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-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多