最近項目使用到了一個新的短信開發工具,下面是測試代碼
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;
}