当前位置: 首页 > 知识库问答 >
问题:

如何设置自定义响应解码器假装?

杜阳泽
2023-03-14

我将feign与OkHttpClient一起使用,并希望使用重试机制对返回状态代码200、ok和空正文的endpoint进行短轮询。用假动作可能吗?在状态代码2xx上没有调用自定义错误解码器。还有其他更喜欢的方式来进行短轮询吗?顺便说一句,我在用科特林。

共有1个答案

谢俊悟
2023-03-14

将以下步骤添加到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)
        }
    })
 类似资料:
  • 在我的应用程序中,我必须知道,从一个列表中有一个服务器地址,这些地址是向上的。我发现的解决方案是从Spring引导执行器调用健康endpoint,对它们每个。JSon reponse是: 在应用程序的其他部分,我使用Spring-Cloud中的Feign客户机,这些客户机使用注释定义,它工作得很好: 不幸的是,这种配置不允许重用同一个客户机来调用不同地址上的同一个endpoint。因此,我必须定义

  • 我现在的问题是,我到底能实现什么/如何实现这些,或者是否有一种方法来扩展ErrorDecoder,使我能够处理这些错误消息。我想我应该能够将它们放入解码器,甚至实现/覆盖HttpClient,但我不确定正确/最好的方法是什么。

  • 这里是我的拦截器方法,我想在这里设置自定义响应,告诉UI发生了什么 并且在web.xml中 spring-servlet.xml 当会话超时时,它在返回false后不发送任何响应。连下面的都不行

  • 我正在使用MPAndroidChart显示一个相对简单的条形图。 有2件事我需要设置,我不知道如何自定义: > 我需要为每个条添加文本,而不是简单的值,每个条本身也有样式。 在每个条的顶部,我需要放置各种类型的可绘制材料来覆盖它的宽度(例如一个条中高度为2dp的蓝色,或另一个条上高度相同的黄色渐变)。 下面是我需要做的一个演示: > 我知道我也可以通过使用添加图标,但这似乎不适用于应该使用整个条形

  • 问题内容: 我已经编写了REST API服务,该服务要求所有响应均为JSON。但是,当Go HTTP请求解析器遇到错误时,它将返回400作为纯文本响应,而无需调用我的处理程序。例: 请注意无效的授权标头。当然,400是正确的响应,但是当然是文本/纯文本。有什么方法可以配置Go http解析器以使用自定义错误响应媒体类型和主体? 问题答案: 你不能 您可以在net / http源中找到它,只有在请求

  • 给Rest服务打电话 http://acme.com/app/widget/123 返回: 此客户端代码的工作原理是: 但是,http://acme.com/app/widget/456返回: 但此客户端代码引发了一个异常: 我试过: 第二次调用只是抛出了另一个HttpClientErrorException,而且它觉得调用服务两次是不对的。 是否有一种方法可以调用该服务一次,并在成功时将响应解析