gpt4 book ai didi

java - Feign中获取path变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:09 24 4
gpt4 key购买 nike

我正在尝试记录第 3 方 API 请求详细信息,并且能够记录 URL、请求和响应正文。

这是我的示例假冒客户端方法:

@GetMapping(value = "/{name}")
Customer getDetails(@PathVariable(name = "name") List<String> name);

这是我在 feign 中拦截响应并能够记录 url、请求和响应的方法。

public class FeignResponseDelegate extends Default {

@Override
public Response execute(Request request, Request.Options options) throws IOException {
Response response = super.execute(request, options);


Request.Body requestBody = request.requestBody();
InputStream responseBodyInputStream = response.body().asInputStream();
byte[] bytes = IOUtils.toByteArray(responseBodyInputStream);


logger.debug("Request URL {}", request.url());
logger.debug("Request Request body {}", requestBody.length() > 0 ? requestBody.asString() : null);
logger.debug("Response Body {}", IOUtils.toString(responseBodyInputStream));

// logger.debug("Path Variables: {}".....
// how to log the path variables?


return response.toBuilder()
.body(bytes)
.build();
}
}

最佳答案

注册一个 feign.Logger 实例将为您处理这个问题。

@Bean
public Logger logger() {
/* here are the two built in loggers */
return new JavaLogger(); // for java.util.logging

/* may require feign-slf4j */
return new Slf4jLogger(); // if you want to use slf4j
}

Logger 将为您记录请求和响应,包括解析的路径参数和 header 。看看SLF4J Documentation有关 Feign 的更多提示

关于java - Feign中获取path变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56831241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com