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