** 需求**:当下级平台成功注册上级平台后,需要发送保活消息保持在线状态。上级平台才可以向下级平台发送订阅消息、以及下级平台向上级平台推送通知。保活接口调用频率10s一次,
一、保活接口
1.接口文档
2.入参对象
3.请求头示例
User-Identify:20位数字平台编码(本平台)
4.请求方法体示例
/**
* 保活请求方法体
*/
@Data
public class KeepaliveRequestObject {
private KeepaliveObject KeepaliveObject;
@Data
public static class KeepaliveObject {
private String DeviceID;
}
}
==========================================================================
JSON字符串:"{\"KeepaliveObject\":{\"DeviceID\":\"40000000000000000000\"}}";
二、保活代码示例
/**
* GA/T 1400 保活 demo
*/
public class Gat1400KeepAliveDemo {
public void keepalive() {
// 20位平台编码 鉴权
String deviceId = "40000000000000000000";
// 请求头设置
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/json; charset=UTF-8"));
headers.set("User-Identify", deviceId);
headers.setConnection("keepalive");
// 参数设置
KeepaliveRequestObject keepaliveRequestObject = new KeepaliveRequestObject();
KeepaliveRequestObject.KeepaliveObject keepaliveObject = new KeepaliveRequestObject.KeepaliveObject();
keepaliveObject.setDeviceID(deviceId);
keepaliveRequestObject.setKeepaliveObject(keepaliveObject);
HttpEntity<String> httpEntity = new HttpEntity<>(JSONUtil.toJsonStr(keepaliveRequestObject), headers);
// 请求执行
ResponseEntity<String> responseEntity = restTemplate.exchange(keepaliveUrl, HttpMethod.POST, httpEntity, String.class);
if (org.apache.http.HttpStatus.SC_OK == responseEntity.getStatusCode().value()) {
log.info("保活成功");
} else {
log.info("保活失败");
}
}
}
请求结果示例
{"ResponseStatusObject":{"RequestURL":"/VIID/System/Keepalive","StatusCode":0,"StatusString":"保活成功","Id":"40000000000000000000","LocalTime":"20230411165449"}}