实战1
public abstract class RequestData {}
@Data
class TokenRequestData extends RequestData{
private String appsecrect;
private String appKey;
}
public abstract class ResponseData {}
@Data
class TokenResponseData extends ResponseData{
private int statusCode;
private String statusMessage;
private TokenData data;
@Data
class TokenData {
private String accessToken;
private long expiresIn;
}
}
//抽取出来公共的http请求头
public ResponseEntity<? extends ResponseData> getResponseData (RequestData data, String acceptType, String contentType) {
HttpHeaders headers = new HttpHeaders();
if(StringUtils.isBlank(acceptType)) {
headers.add("Accept", "application/json");
} else {
headers.add("Accept", acceptType);
}
if(StringUtils.isBlank(contentType)) {
headers.add("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
} else {
headers.add("Content-Type", contentType);
}
HttpEntity<RequestData> entity = new HttpEntity<>(data, headers);
ResponseEntity<ResponseData> responseEntity = null;
try {
responseEntity = HttpUtil.restTemplate.exchange(incomingUrl, HttpMethod.POST, entity, ResponseData.class);
return responseEntity;
} catch(Exception e) {
log.error("get Esoon accessToken is error, e{}", e);
return null;
}
}