最近项目使用到了一个新的短信开发工具,下面是测试代码
SmsApiClient smsApiClient = null;
long mobile = 12312312312l;
String content="发送API短信"; //短信内容
String xcode="";//短信扩展码
String appID="";//API插件标识ID
String appPwd="";//API插件密码
int masApiPort=61616;
String masIP="";
//SmsApiClientHandlerImpl是由自己实现的
SmsApiClientHandler smsHandler = new SmsApiClientHandlerImpl();
try {
smsApiClient = new SmsApiClientImpl(smsHandler, masIP, masApiPort, appID, appPwd);
//设置是否自动重连到服务器(可以不需要设置)
smsApiClient . setAutoConnect (true);
//设置自动重连服务器相隔时间(单位:秒), 默认为30秒(可以不需要设置)
smsApiClient. setReConnectInterval (60);
//设置与服务连接超时时长,单位:millisecond(可以不需要设置)
smsApiClient.setConnectTimeout(100000);
//设置发送超时时长,单位:millisecond(可以不需要设置)
smsApiClient .setSendTimeout(1000000);
smsApiClient.start();
//获得短信群发提交的数量限制
int ret = smsApiClient.getDestAddrsLimit();
//获取网关连接状态(Connect:连接正常, Disconnect:断连, NotConnect:没有连接, Other:其他)
ConnectStatus connectStatus= smsApiClient.getConnStatusIAGW();
if (!ConnectStatus.Connect.equals(connectStatus)) {
System.out.println("网关未连接"); return; }
//计算短信条数和字数
SmsCount smsCount= smsApiClient. getSmsCount(content, MsgFmt.GB2312, SmsType.Normal);
//获得扩展服务代码(插件短信扩展号码+流水号)长度
int xcodeLength= smsApiClient.getXCodeLength() ;
List<String> list = new ArrayList<String>();
//每次群发数量不能超过最大限制数
for (int i = 0; i < ret ; i++) {
long address = mobile + i;
list.add(String.valueOf(address));
}
// /*
//发送短信 //======构造发送短信对象开始,下面代码演示发送短信对象几个比较主要的属性值,其它的属性可以不设置,如果要设置可以参考sendSms方法中 SmsSendRequest参数===
ApiSmsSendRequest smsSendRequest = new ApiSmsSendRequest();
smsSendRequest.setAppID(appID);
smsSendRequest.setDestAddrs(list);
smsSendRequest.setXCode(xcode);
smsSendRequest.setMessage(content);
smsSendRequest.setMsgFormat(MsgFmt.GB2312);
smsSendRequest.setType(SmsType.Normal);
smsSendRequest.setValidTime(10000);
smsSendRequest.setNeedReport(true);
smsSendRequest.setPriority(0);
//======构造发送短信对象结束=======
ApiSmsSendResponse smsSendResponse = smsApiClient.sendSms(smsSendRequest);
System.out.println("提交成功,requestID:" + smsSendResponse.getRequestID()+",errcode"+smsSendResponse.getErrCode()+",desc"+smsSendResponse.getDesc());
} catch (Exception e) {
e.printStackTrace();
System.out.println("API短信客户端调用失败:" + e.getMessage());
// smsApiClient.loginOut();
return;
}