需求: 当你想要即能返回application/json又能返回application/xml 的时候

基本上设置content-type通用的做法就是@requestMapping里的produces参数设置MediaType

根据这篇文章,我还以为已经没有办法动态设置content-type了,直到我在StackOverflow里看到了ResponseEntity

然后根据它官网上的api, 用以下方法解决了

@PostMapping(value = "/test")
    public ResponseEntity<Object> test() {

        HttpHeaders headers = new HttpHeaders();
        //根据自己的需要动态添加你想要的content type
        headers.add(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON_VALUE);
        
        return new ResponseEntity<Object>("这里是你的响应体Object类和其子类都行",headers,HttpStatus.OK);
    }

另提一句, springboot也是能根据 @requestMapping里的consumes参数设置, 来区分调用哪个函数, 即便value是一样的

更多推荐

SpringBoot 动态设置响应头的content-type