http://ip:port/secure/getIMSReport
参数 | 类型 | 传输方式 | 描述 |
---|---|---|---|
appId | String | Http头信息传输 | 用户Appid(必填) |
gzip | String | Http头信息传输是否启用GZIP压缩【非必填】 on :是 | |
encode | String | 字符集【非必填】如果不填,默认UTF-8编码集,此字符集必 须与实际传输数据字符集相同 | |
requestTime | long | 请求时间(必填) 格式:时间毫秒数 安全验证字段,防止同一个请求重复提交; 短信平台根据requestTime与requestValidPeriod共同判 断请求是否有效,针对无效的请求,短信平台响应错误; 判断方法:请求时间 + 请求有效时间> 当前时间 ? 有效 : 无效; | |
requestValidPeriod | int | 请求有效时间(必填)[单位:秒] 描述同上 | |
number | int | 字获取数量(选填) 最多500个,默认500个 |
1、将参数拼装成json串
{ "number":300, "requestTime":1490588340964, "requestValidPeriod":30 }
2、将json串转化为UTF-8编码的byte数组
Byte[] data = json.toBytes[“UTF-8”];
3、如果需要gzip压缩,则压缩数据,并放入标示,[非必需步骤]
data =gzip.com (data);
http.setHead("gzip","on");
4、通过AES加密
data = AES. encryption (secretKey,data,算法);
5、将appId放入http head
http.setHead("appId",appId);
6、通过http post方法传输
Byte[] response = http.post(url,data);
响应数据格式为Json
参数 | 类型 | 传输方式 | 描述 |
---|---|---|---|
result | String | Http头信息传输 | 请求状态码,详见本文档《3.接口状态码表》 当result不是SUCCESS时,不会响应下面参数数据。 |
mobile | String | 手机号(必填) | |
imsId | String | 消息ID(选填) | |
customImsId | String | 自定义消息ID(选填) | |
state | String | 状态(必填),详见本文档《4.状态报告状态码表》 | |
desc | String | 状态描述(选填) | |
receiveTime | String | 状态报告返回时间(必填) 格式:yyyy-MM-dd HH:mm:ss | |
submitTime | String | 信息提交时间(必填) 格式:yyyy-MM-dd HH:mm:ss |
1、从http头信息获取请求状态,如果code不是SUCCESS,不用进行下面几步
String code = http.getHead("result");
2、从响应流获取响应数据,并解密
Byte[] data = Response.getdata();
data = AES. decryption (secretKey, data,算法);
3、如果请求信息中有压缩标示,返回的数据也是压缩过的,需要解压缩;[非必须步骤]
data = GZIP.dcom(data);
4、将数据转换成JSON串
String json = new String(data,"UTF-8");
[ { "mobile":"0061422118000", "imsId":"20180392833833891100", "customImsId":"1553885000011111", "state":" DELIVRD", "desc":"成功", "receiveTime ":"2018-03-15 12:00:00", "submitTime":"2018-03-15 12:00:00" },{ "mobile":"0061422118001", "imsId":"20180392833833891101", "customImsId":"1553885000011112", "state":" DELIVRD", "desc":"成功", "receiveTime ":"2018-03-15 12:00:00", "submitTime":"2018-03-15 12:00:00" } ]