HttpRequset返回映射到实体类为null

Blade 未结 1 112
frmine
frmine 剑圣 2025-07-30 11:13

一、该问题的重现步骤是什么?

  1. HttpRequset返回映射到实体类为null,下面是代码和打印的返回String


  2.     public WechatTemplateResponse sendTemplateMessage(WechatTemplateMessageRequest request) {
           WechatMiniTokenResponse accountAccessToken = getAccountAccessToken();
           String accessToken = accountAccessToken.getAccessToken();
    
           URI uri = UriComponentsBuilder.fromHttpUrl("https://api.weixin.qq.com/cgi-bin/message/template/send")
              .queryParam("access_token", accessToken)
              .encode(StandardCharsets.UTF_8)
              .build().toUri();
    
           HttpRequest httpRequest = HttpRequest.post(uri)
              .addHeader("content-type", "application/json")
              .bodyString(JSONObject.toJSONString(request));
           String s = httpRequest.execute()
              .onResponse(ResponseSpec::asString);
           System.out.println("String返回:" + s);
    //        .onResponse(responseSpec -> responseSpec.asDomValue(WechatTemplateResponse.class));
    //     log.info("执行返回:{}", wechatTemplateResponse);
           return null;
        }
  3. @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    public class WechatTemplateResponse {

       private Integer errcode;

       private String errmsg;

       private Long msgid;

    }
  4. 这是打印的信息:String返回:{"errcode":0,"errmsg":"ok","msgid":1234578900……}


二、你期待的结果是什么?实际看到的又是什么?


我看了底层实现,似乎没有对@JsonProperty的拦截,使用原始返回的字段,希望能把值自动转换到实体类;


实际是返回的WechatTemplateResponse字段都为null


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

Bladex-Boot  4.6.0.RELEASE Windows11系统

四、请提供详细的错误堆栈信息,这很重要。

String返回:{"errcode":0,"errmsg":"ok","msgid":1234578900……}

五、若有更多详细信息,请在下面提供。

1条回答
  • 2025-07-30 14:10

    用asValue可以了,也支持@JsonProperty注解

    0 讨论(0)
提交回复