java - Spring Boot - 是否可以根据成功从 Web 服务返回文件或 xml?
问题描述
我的任务是创建一个从 Azure 存储帐户获取文件的 Web 服务。
成功时:将文件作为有效负载返回
出错时:返回 xml 响应。
xml 响应将包含请求的副本、错误代码和消息等,因为用户需要一个有用的错误消息来解释发生了什么。
我可以找到有关如何返回单个对象/媒体类型的说明,但不能找到取决于条件的多种类型。
这可能吗?
解决方案
由于 Abhijeet 的评论,解决了异常处理程序 - 添加 contentType 或默认返回 JSON 很重要
@ControllerAdvice
public class MyExceptionHandler {
@ResponseStatus(HttpStatus.I_AM_A_TEAPOT)
@ExceptionHandler(MyException.class)
@ResponseBody
ResponseEntity<?> exceptionHandler(MyException e){
InvoiceArchiveResponse responseObject = e.getResponseObject();
return ResponseEntity.badRequest()
.contentType(MediaType.parseMediaType("application/xml"))
.body(responseObject);
}
}
谢谢!
推荐阅读
- java - 将 while 循环中的 AudioRecord 缓冲区写入数组
- php - 如何从上次交易中获得价值,但不是今天的交易
- android - 如何在 Fragment Android 中编写 SQLite 数据库
- android - Androidx Cardview 上未显示阴影
- javascript - 如何在 ReactJS 中保留新的状态值并将其传递给另一个路由器组件
- python - 有没有办法制作多人骰子游戏,玩家轮流滚动并计算分数?
- excel - 如何使用 SAP GUI 脚本自动禁用 Excel 显示
- html - 如何避免空值插入数据库?
- ios - 使用 base64Data 将图像保存到带有 mediaScanner:true 的相机胶卷,但它在 Ionic 4 中保存了错误的位置
- rust - 如何从 FuturesUnordered 返回错误?