是否可以在 AbstractHttpMessageConverter writeInternal() 方法中更改响应状态代码?
在我的 AbstractHttpMessageConverter(扩展 MappingJackson2HttpMessageConverter)中,我想将错误响应更改为 200,并将实际状态代码(例如 400)添加到 json 中的状态字段。
编辑1
我返回的代码如下:
JSONObject json= new JSONObject();
json.put("name", "My Name");
return new ResponseEntity<JSONObject>(json, HttpStatus.OK);
或者如果出现错误:
JSONObject json= new JSONObject();
json.put("error", "My Error");
return new ResponseEntity<JSONObject>(json, HttpStatus.BAD_REQUEST);
我想在某个地方截获响应主体,并且:a)用状态代码包装原始响应主体(实体)b)将响应状态代码更改为 200
因此,对于这两种变体,这意味着:
{ "status": 200, "response": { "name": "My Name" } }
{ "status": 400, "response": { "error": "My Error" } }
在这两种情况下,都会返回 http 状态 200。
我正在考虑通过扩展 MappingJackson2HttpMessageConverter 并覆盖 writeInternal 方法来做到这一点,但不幸的是我无法更改状态代码。
注意我不想在我的控制器类中这样做。他们应该只返回基本的 json 结构。