首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ErrorDecoder调用前在伪引导和spring引导中拦截http响应

如何在ErrorDecoder调用前在伪引导和spring引导中拦截http响应
EN

Stack Overflow用户
提问于 2022-08-31 17:11:06
回答 1查看 359关注 0票数 0

我需要拦截HTTP响应并更改HTTP状态代码。例如,我可能会更改200到400 (基于响应对象本身),以便调用ErrorDecoder。

我需要在不扩展feign.Client类的情况下这样做!(事实上,我使用的feign.httpclient.ApacheHttpClient是最终的!)

我试图为ResponseMapper提供一个实现,但是在HTTP检查完成后,响应映射程序(以及我用来覆盖的Decoder )似乎才会被调用!

我在这里主要讨论SynchronousMethodHandlerAsyncResponseHandler的实现是如何工作的。

总结一下,我的主要问题是AsyncResponseHandler#handleResponse不会在ErrorDecoder之前调用Decoder (因此是ResponseMapper),如果调用了,ResponseMapper就可以执行我需要的HTTP状态代码。

EN

回答 1

Stack Overflow用户

发布于 2022-08-31 21:21:26

要克服这个缺点,我需要重新编写代码中的实现类(而不是依赖spring引导的自动配置)。

代码语言:javascript
运行
复制
@Bean
public Client feignClient(HttpClient httpClient) {
    var client = new ApacheHttpClient(httpClient);
    return (request, options) -> convertResponse(client.execute(request, options));
}

private Response convertResponse(Response response) throws IOException {

    // ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73559543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档