一、该问题的重现步骤是什么?
HttpRequset返回映射到实体类为null,下面是代码和打印的返回String
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;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class WechatTemplateResponse {
private Integer errcode;
private String errmsg;
private Long msgid;
}
这是打印的信息:String返回:{"errcode":0,"errmsg":"ok","msgid":1234578900……}
二、你期待的结果是什么?实际看到的又是什么?
我看了底层实现,似乎没有对@JsonProperty的拦截,使用原始返回的字段,希望能把值自动转换到实体类;
实际是返回的WechatTemplateResponse字段都为null
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
Bladex-Boot 4.6.0.RELEASE Windows11系统
四、请提供详细的错误堆栈信息,这很重要。
String返回:{"errcode":0,"errmsg":"ok","msgid":1234578900……}
五、若有更多详细信息,请在下面提供。
扫一扫访问 Blade技术社区 移动端