这边的 API 的 http code 都是 200 ,业务错误码都写在响应体里了,现在有个接口返回的是文件,就没办法判断错误码了,这也算这种模式的一个局限性了,只能考虑把文件 base64 放在响应体里吗?
1
RightHand 2 天前 via Android
又不是不能用
|
![]() |
2
xiaoming1992 2 天前 via Android
有业务错误,就不响应文件(而是响应业务错误码),不就行了。
|
![]() |
3
BeautifulSoap 2 天前
接口错误了还返回正常文件吗。。。。
|
4
vincentWdp 2 天前
判断 response header 里的 content-type 看是 json 还是其他
|
![]() |
5
ffLoveJava 2 天前
借此请教个类似的疑问:springBoot +vue
普通的接口都同意返回一个结果对象封装了状态码、错误信息、返回数据。 但是返回文件流的接口,比如某些文件添加当前登录用户信息的水印后以流的形式返给前端,这种接口返回类型是 void ,字节流放在 HttpServletResponse 中 flush 返回。 那这种接口出现错误后,比如无权查看、文件被锁定无法查看 等等 怎么返回前端? 前端通过什么判断是一个正常的文件流还是一串错误信息 |
![]() |
6
EthanZhuXE2V 2 天前
返回文件的 oss 地址?
|
![]() |
7
chendy 2 天前
问题是接口为啥返回文件,直接给用户下载不行么…
|
8
yinmin 2 天前 via iPhone
#4 正解。判断 response header 的 content-type ,如果出错是 application/json ,response body 是包含错误信息的 json 数据;如果正常返回 application/octet-stream ,response body 是二进制文件
|
![]() |
9
laimikan 2 天前
文件都返回了为啥还有失败?
|
![]() |
10
xuanbg 2 天前
不返回文件的 url ?直接返回文件流?
|
11
afeiche OP @vincentWdp 也是一种思路,我试试
|
12
sthwrong 1 天前
@ffLoveJava 思路差不多的,能返回流了那么响应头肯定不一样了,这时候的异常和业务异常无关,业务异常你按常规的比如 json 响应头返回就行了。
|