如何解决如何设置自定义响应解码器来伪装?
我将 feign 与 OkHttpClient 一起使用,我想使用重试机制对返回状态代码 200 ok 和空正文的端点进行短轮询。 使用 feign 可以吗? 未在状态代码 2xx 上调用自定义错误解码器。 还有其他首选方式进行短轮询吗?顺便说一句,我正在使用 Kotlin。
解决方法
将以下步骤添加到您的 Feign.builder()
:
.decoder(object : Decoder {
private val delegate = Decoder.Default() //Or whatever decoder you actually use
override fun decode(response: Response,type: Type) {
if (response.status() == 200 && (response.body() == null || response.body().length() == 0))
throw RetryableException(
response.status(),"Response body was empty",response.request().httpMethod(),null,//retry interval will be determined by Retryer
response.request()
)
else delegate.decode(response,type)
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。