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

如何拦截使用WebClient/WebFlux形成的所有传出HTTP请求?

夹谷阳夏
2023-03-14

我有两个服务(A和B)正在运行,我使用服务A中的WebClient形成HTTP请求,以连接到服务B。我希望拦截传出请求并记录它们。我无法在服务B的入口点拦截,因为它属于另一个团队。

我可以在构建WebClient的同时添加ExchangeFilterFunction,但是有没有类似WebFilter的工作方式(保持过滤器逻辑与应用程序代码分离;它拦截所有传入的请求,而不改变应用程序代码)

我正在尝试类似于 如何在webflux中做后匹配过滤器?

我没有找到任何解决方案。

共有1个答案

蒲魁
2023-03-14

尝试将ExchangeFunctions的登录级别更改为调试。

logging:
  level:
   org.springframework.web.reactive.function.client.ExchangeFunctions: debug

希望它能帮助你

 类似资料:
  • 类似于Servlet.Filter)在Web中添加时.xml可以拦截任何独立于框架(Spring / CXF / Jersy等)的传入JVM /传出(作为响应),我正在尝试找到一个API,它可以拦截来自JVM的任何传出HTTP调用,以添加/修改独立于框架的标头。此外,通过代理路由请求听起来令人不知所措。 论坛上经常会误解“呼出HTTP呼叫”这个词,所以让我用例子来解释一下。 让我们假设有两个JVM

  • 问题内容: 我似乎无法让$ httpProvider.interceptors实际进行拦截。我在JSFiddle上创建了一个示例,该示例记录了拦截器运行的时间以及$ http响应成功的时间。在成功返回响应之后,将运行请求拦截器。这似乎有些倒退。 我不能使用transformRequest,因为我需要更改配置中的参数。该部分未显示在示例中。 我正在使用AngularJS 1.1.5 http://j

  • 我正在尝试使用<code>网络客户端 谢谢 -斯里尼

  • 问题内容: 我知道如何拦截所有请求,但是我只想拦截来自我资源的请求。 有谁知道如何做到这一点? 问题答案: 如果只想拦截来自特定资源的请求,则可以使用可选的action 属性。Angular的文档请参见此处(用法>操作) 的JavaScript Plunker:http ://plnkr.co/edit/xjJH1rdJyB6vvpDACJOT?p=preview

  • 配置拦截器 declarations: [ AppComponent ], HttpClientModule ], providers: [ [ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true } ] bootstrap:

  • 如何在请求从DTO转换为JSON字符串之后拦截它们? 反过来,在响应从JSON转换为dto之前拦截它们。