Ktor 客户端:使用代码 200 处理错误

Posted

技术标签:

【中文标题】Ktor 客户端:使用代码 200 处理错误【英文标题】:Ktor client: Processing errors with code 200 【发布时间】:2020-10-20 19:30:53 【问题描述】:

我们的服务器使用代码 200 和以下正文响应业务错误:


    "success": false,
    "error_code": 1,
    "error_text": "Error message"

如何在响应中检测到此主体并为其抛出异常?

【问题讨论】:

【参考方案1】:

您可以为此使用HttpResponseValidator 功能:https://ktor.io/clients/http-client/features/response-validation.html

类似的东西:

HttpResponseValidator 
    validateResponse  response ->
       val body = // ...
       check(body.success)
    

【讨论】:

是的,我知道验证器,但是我在从响应中获取正文时遇到了问题,我用 Json.parseJson(String(response.readBytes())) 解决了这个问题,但也谢谢你,由于某种原因 response.conent.getText() 抛出错误“响应已收到”

以上是关于Ktor 客户端:使用代码 200 处理错误的主要内容,如果未能解决你的问题,请参考以下文章

TomcatJPS中常见的tomcat报错错误分析

在 ktor 请求处理程序中启动协程

Ktor 的 HttpClient 使用的正确模式

Feign实现自定义错误处理

处理 HttpClient Ktor 中的异常

使用 Play 框架的 REST URL 错误处理