我有这个方法,但代码中的 gson 有问题: public static CmsUser validateTokenCms(String token, RestTemplate restTemplate, PropertyCommonConfig propertyCommonConfig) {
TokenRequest tokenRequest = new TokenRequest();
tokenRequest.setChannel("ORDER_RUNTIME");
tokenRequest.setTransid(UUID.randomUUID().toString().replace("-", "").substring(0, 10));
tokenRequest.setToken(token);
String authString = propertyCommonConfig.getUserNameAuth() + ":" + propertyCommonConfig.getPasswordAuth();
String encodedAuthString = Base64.getEncoder().encodeToString(authString.getBytes(StandardCharsets.UTF_8));
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + encodedAuthString);
headers.add("Content-Type", "application/json");
HttpEntity<TokenRequest> entity = new HttpEntity<>(tokenRequest, headers);
ResponseEntity<String> responseEntity = null;
try {
responseEntity = restTemplate.postForEntity(propertyCommonConfig.getUrlAuthen() + "/customer/checkTokenCms",
entity, String.class);
} catch (Exception e) {
e.printStackTrace();
}
log.info("====== responseEntity ======== " + responseEntity);
Gson gson = new Gson();
CheckTokenResp response = gson.fromJson(responseEntity.getBody(), CheckTokenResp.class);
log.info("====== response ======== " + response);
if (response == null) return null;
CmsUser cmsUser = response.getData();
log.info("====== cmsUser ======== " + cmsUser);
if (cmsUser == null) return null;
return cmsUser;
}
我有错误:'java.lang.IllegalStateException:预期为 BEGIN_OBJECT,但在第 1 行第 67 列路径 $.data 处为 STRING'
先打印正文。
它很可能不像 JSON 对象那样开头(带有
{
),而是以其他字符开头(可能是包含错误消息的字符串)。