场景

此接口是下载文件,但逻辑中存在异常情况,并且响应对象设置了此响应头:

response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);

当内部抛出了异常后并且给了一个通用的实体对象,是JSON格式并非文件流:

{
	"code": 500,
	"message": "异常"
}

最后SpringMVC在转换的时候报此类错误。

解决

关键点就在于上述的响应头固定了是返回流数据,设置兼容其它格式或者在这样设置:

@PostMapping(value = "xxxx",
  produces = {MediaType.APPLICATION_OCTET_STREAM_VALUE, MediaType.APPLICATION_JSON_VALUE})

更多推荐

No converter for [class XXX] with preset Content-Type ‘application/octet-stream;