gpt4 book ai didi

java - 记录 JSON @Jersey Rest WS 的请求体

转载 作者:行者123 更新时间:2023-12-02 03:19:37 27 4
gpt4 key购买 nike

如何使用 Java 中的 Jersey 打印/记录以下代码 @ Rest WS 的 JSON 请求正文。我可以记录对此的响应。我正在努力记录/打印确切的请求正文。

提前致谢。

WebTarget 目标 = client.target(url);

    //authentication strings
String authString = "username:password";
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);

Response res = target.request(MediaType.APPLICATION_JSON)
.header("content-type", "application/json")
.header("Authorization", "Basic " + authStringEnc)
.header("accept", "application/json,text/plain")
.header("X-senderTimestamp", new Timestamp(System.currentTimeMillis()))
.header("X-appCode", "IVR")
.header("X-sessionId", XsessionId)
.post(Entity.entity(getAccountInfoInputBean, MediaType.APPLICATION_JSON));

最佳答案

Jersey 2.23 及更高版本

在 Jersey 2.23 及更高版本中,LoggingFeature会为你解决问题的。它必须注册如下:

ClientConfig clientConfig = new ClientConfig();
clientConfig.property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_CLIENT,
LoggingFeature.Verbosity.PAYLOAD_ANY);
Client client = ClientBuilder.newBuilder(clientConfig);

使用默认详细程度设置 ( LoggingFeature.Verbosity.PAYLOAD_TEXT ),将记录请求和响应 header ,以及被视为可读文本的实体。如果媒体类型是 text/* 或者是以下之一,则该实体被视为可读文本:

  • application/atom+xml
  • application/json
  • application/svg+xml
  • application/x-www-form-urlencoded
  • application/xhtml+xml
  • application/xml

请注意,记录的实体最多达到指定的最大字节数(请参阅 LoggingFeature.LOGGING_FEATURE_MAX_ENTITY_SIZE )。

看看 Jersey documentation about logging了解更多详情。

旧版本

在旧版本中,使用 LoggingFilter 。根据文档,从 Jersey 2.23 及更高版本开始,此过滤器已被弃用,并将很快被删除。

关于java - 记录 JSON @Jersey Rest WS 的请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39820359/

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