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

假客户机:如何记录请求发送到的服务器名称?

裴俊能
2023-03-14

我正在使用一个假客户机成功地调用一个RESTendpoint,并将日志记录打开到FULL。这有助于向我显示发送的请求和收到的响应。但是,我看不到请求被发送到哪个服务器。它只告诉我它被发布到http://foo-service,这是服务的名称,而不是服务器的名称。

如何记录此请求发送到的服务器名称?

c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] ---> POST http://foo-service/some-endoint HTTP/1.1
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] Accept: application/json
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] Content-Type: application/json
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] Content-Length: 15
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] 
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] {"name":"John"}
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] ---> END HTTP (15-byte body)
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] <--- HTTP/1.1 200 (8ms)
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] Transfer-Encoding: chunked
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] X-Application-Context: fooService:9006
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] Date: Tue, 10 Oct 2017 09:25:36 GMT
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] Content-Type: application/json;charset=UTF-8
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] 
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] {"result":"Hello John"}
c.l.l.r.service.FooFeignClient : [FooFeignClient#bar] <--- END HTTP (23-byte body)
@Bean
public feign.Logger.Level feignLoggerLevel() {
    return Logger.Level.FULL;
}

共有1个答案

葛成济
2023-03-14

您需要提供自己的记录器来实现这一点。默认的记录器非常简单,在发送请求之前记录主机。当使用功能时,响应将提供这些信息。如果重写LogAndreBufferResponse方法,则Response.url属性将是提交的整个url,包括主机名。

protected Response logAndRebufferResponse(
    String configKey, 
    Level logLevel, 
    Response response,
    long elapsedTime) throws IOException {

    /* ask the response for the request and log the uri */
    log(response.request.url());
}
 类似资料:
  • 我试图实现一个tcp客户端,它将使用spring Integration连接到现有的服务器。对于这项技术还是新手,我已经在https://github.com/spring-projects/spring-integration-samples上学习了spring示例。 主要方法: 如何强制此客户端连接到我的服务器,即使我不想发送数据?

  • 为什么每个站点都解释说,在SSE中,客户端和服务器之间只有一个连接保持打开状态“在SSE中,客户端发送一个标准的HTTP请求,请求一个事件流,服务器最初以标准的HTTP响应进行响应,并保持连接打开” 然后,当服务器决定它可以向客户机发送数据时,我正在尝试实现SSE,我会看到每隔几秒钟发送一次fiddler请求 对我来说,这感觉像是长时间的轮询,没有一个连接保持打开。

  • 为什么每个站点都解释说在SSE中,客户端和服务器之间的单个连接保持打开状态“使用SSE,客户端发送标准HTTP请求请求事件流,服务器最初以标准HTTP响应响应并保持连接打开” 然后,当服务器决定可以向客户端发送数据,而我试图实现SSE时,每隔几秒钟就会看到fiddler请求被发送 对我来说,这感觉就像是长时间的投票,没有一个连接保持打开。 此外,并不是服务器决定向客户机发送数据,而是只有在客户机发

  • 我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s

  • 冒充客户 客户端的控制器 } 编辑3:我添加了功能区 我的服务应用程序和我的api是使用虚假客户机。不幸的是,我仍然有同样的问题。我已经刷新和重建了一切。 编辑4:我已经为这个问题创建了一个GitHub项目。 输入输入模块使用输入格式和输入解析模块作为假客户机来验证输入字符串的长度和解析/打印项。我一直使用字母表作为输入,所以输入参数的最小长度设置为26。input-format在端口8080上运

  • 问题内容: 关于此问题: 将cookie从一个请求传输/传递到nodejs /protractor中的另一个请求 我又拿了一个 我如何查看通过nodejs执行的完整请求(标头+正文)? 问题答案: 是的,您可以…您可以从完整的响应正文访问完整的请求- 我有一个如下所示的通用完整响应结构 您可以通过如下代码访问