java发送短信接口代码 java发送短信接口代码怎么写

java发送手机短信package com.winhands.quartz;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.winhands.base.service.BaseService;
import com.winhands.util.BaseConstant;
import com.winhands.web.dict.entity.DictCommon;
import com.winhands.web.xfhf.entity.SmsOutBox;
import com.winhands.web.xfhf.entity.SmsVisit;
import com.winhands.web.xfhf.entity.TaskInfo;
public class SmsSendSync {
public BaseService baseService;
public BaseService baseServiceMas;
public static final Logger logger = LoggerFactory.getLogger(SmsSendSync.class);
//同步短信到mas机待发短信表
public void work() {
// 任务ID 100001
// 首先查询任务是否正在执行
// 查询列表
TaskInfo taskInfo = new TaskInfo();
taskInfo.setTask_id("100001");
try {
taskInfo = (TaskInfo) baseService.queryForObject("sms_send.queryTaskStatus", taskInfo);
//如果状态是处室状态则执行java发送短信接口代码 , 否则此次任务不执行
if (BaseConstant.task_status_cs.equals(taskInfo.getTask_status())) {
taskInfo.setTask_status(BaseConstant.task_status_zx);//设置任务执行状态为执行
taskInfo.setTask_last_start_time(new Date());//设置任务执行开始时间
baseService.update("sms_send.updateTaskStatus", taskInfo);//
//移动号码库
HashMapString,String hashMap = new HashMapString,String();
//134 、135、136、137、138、139、150、151、152、158、159、182、183、184 。157、187、188
hashMap.put("134", "134");
hashMap.put("135", "135");
hashMap.put("136", "136");
hashMap.put("137", "137");
hashMap.put("138", "138");
hashMap.put("139", "139");
hashMap.put("150", "150");
hashMap.put("151", "151");
hashMap.put("152", "152");
hashMap.put("157", "157");
hashMap.put("158", "158");
hashMap.put("159", "159");
hashMap.put("182", "182");
hashMap.put("183", "183");
hashMap.put("184", "184");
hashMap.put("187", "187");
hashMap.put("188", "188");
SmsVisit smsSend = new SmsVisit();
smsSend.setSms_status(BaseConstant.sms_status_csh);
List list = baseService.queryForList("sms_send.queryForSmsTask", smsSend);
List smsMasList = new ArrayList();
List smsList = new ArrayList();
if (list == null||list.size()==0) return;// 如果列表为空java发送短信接口代码,没有待办任务,则任务结束
for (int i = 0; ilist.size(); i) {
smsSend = (SmsVisit) list.get(i);
//String msg = messagecontent(smsSend);
String msg = smsSend.getSpare_2();
if(hashMap.get(smsSend.getVisit_phone().substring(0, 3))!=null){
SmsOutBox smsOutBox = new SmsOutBox();
smsOutBox.setSismsid(smsSend.getP_id());
smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);
smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);
smsOutBox.setDestaddr(smsSend.getVisit_phone());
smsOutBox.setMsgfmt(BaseConstant.MSGFMT);
smsOutBox.setRequesttime(new Date());
smsOutBox.setExtcode(smsSend.getExtccode());
smsOutBox.setSendmethod(BaseConstant.NoMsg);// 正常短信
smsOutBox.setMessagecontent(msg);
smsMasList.add(smsOutBox);
}else{
boolean con = true;
String lastMsg = msg;
int xh =0;
while(con){
lastMsg = msg.substring(0,msg.length()55 ? 55 : msg.length());
msg = msg.substring(msg.length()55 ? 55 : msg.length(),msg.length());
if (msg.equals("")) {
con = false;
}
SmsOutBox smsOutBox = new SmsOutBox();
smsOutBox.setSismsid(smsSend.getP_id() (xh==0?"":xh));
xh;
smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);
smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);
smsOutBox.setDestaddr(smsSend.getVisit_phone());
smsOutBox.setMsgfmt(BaseConstant.MSGFMT);
smsOutBox.setRequesttime(new Date());
smsOutBox.setExtcode(smsSend.getExtccode());
smsOutBox.setSendmethod(BaseConstant.NoMsg);// 正常短信
smsOutBox.setMessagecontent(lastMsg);
smsMasList.add(smsOutBox);
}
}
SmsVisit smsSendTemp = new SmsVisit();
smsSendTemp.setP_id(smsSend.getP_id());
//smsSendTemp.setSpare_2(msg);//短信内容
smsSendTemp.setSms_status_time(new Date());
smsSendTemp.setSms_status(BaseConstant.sms_status_yfswg);
smsList.add(smsSendTemp);
}
baseService.insertBatch("sms_send.insertSmsOutBox", smsMasList);//插入本地历史记录表
baseServiceMas.insertBatch("sms_mas.insertSmsOutBox", smsMasList);//插入mas机待发送表
baseService.updateBatch("sms_send.updateSmsVisit", smsList);//更新回访记录状态
}
} catch (Exception e) {
e.printStackTrace();
//baseService.saveLog("同步短信到mas机待发短信表", "100001", "同步短信到mas机待发短信表错误");
logger.error("同步短信到mas机待发短信表错误", getTrace(e));
}finally{
try {
taskInfo.setTask_status(BaseConstant.task_status_cs);//设置任务执行状态为初始
taskInfo.setTask_last_end_time(new Date());//设置任务执行结束时间
taskInfo.setTask_status_desc("任务执行结束");
baseService.update("sms_send.updateTaskStatus", taskInfo);//
} catch (Exception e2) {
e2.printStackTrace();
// TODO: handle exception
}
}
}
public String messagecontent(SmsVisit smsSend){
//XX,您好!您于XX月XX日办理XX业务(或XX,您好!XX大队于XX月XX日对你单位进行监督检查/行政处罚/火灾调查),现进行满意度回访,请回复数字:1为满意java发送短信接口代码;2为基本满意;3为不满意 。感谢您对消防工作的支持!回复免费 。宿迁市公安消防支队
//首先根据业务类型来判断采用哪种模板 监察
StringBuffer msg = new StringBuffer("");
if(BaseConstant.jiancha.equals(smsSend.getVisit_deal_business_type())){
msg.append(smsSend.getVisit_name_cn())
.append(",您好!")
.append(smsSend.getVisit_deal_org_name())
.append("于")
.append(smsSend.getVisit_deal_time().substring(4, 6)).append("月")
.append(smsSend.getVisit_deal_time().substring(6, 8)).append("日")
.append("对你单位进行").append(DictCommon.getEntryMap(BaseConstant.jiancha).get(smsSend.getVisit_deal_business()))
.append(",现进行满意度回访,请回复数字:1为满意;2为基本满意;3为不满意 。感谢您对消防工作的支持!");
}else if(BaseConstant.yewu.equals(smsSend.getVisit_deal_business_type())){
msg.append(smsSend.getVisit_name_cn())
.append(",您好!您于")
.append(smsSend.getVisit_deal_time().substring(4, 6)).append("月")
.append(smsSend.getVisit_deal_time().substring(6, 8)).append("日")
.append("办理").append(smsSend.getVisit_deal_business()).append("业务,")
.append("现进行满意度回访,请回复数字:1为满意;2为基本满意;3为不满意 。感谢您对消防工作的支持!");
}
return msg.toString();
}
public BaseService getBaseService() {
return baseService;
}
public void setBaseService(BaseService baseService) {
this.baseService = baseService;
}
public BaseService getBaseServiceMas() {
return baseServiceMas;
}
public void setBaseServiceMas(BaseService baseServiceMas) {
this.baseServiceMas = baseServiceMas;
}
public static void main(String[] args){
List smsMasList = new ArrayList();
try {
String msg = "*** , 您好!*********于2015年5月2日对你单位进行监督检查 , 现进行满意度回访 , 请回复数字:1为满意;2为基本满意;3为不满意 。感谢您对消防工作的支持!";
SmsOutBox smsOutBox = new SmsOutBox();
smsOutBox.setSismsid("12344");
smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);
smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);
smsOutBox.setDestaddr("111");
smsOutBox.setMsgfmt(BaseConstant.MSGFMT);
smsOutBox.setRequesttime(new Date());
smsOutBox.setExtcode("2222");
smsOutBox.setSendmethod(BaseConstant.NoMsg);// 正常短信
boolean con = true;
String lastMsg = msg;
while(con){
lastMsg = msg.substring(0,msg.length()55 ? 55 : msg.length());
msg = msg.substring(msg.length()55 ? 55 : msg.length(),msg.length());
if (msg.equals("")) {
con = false;
}
SmsOutBox smOutBox_temp = new SmsOutBox();
smOutBox_temp = smsOutBox;
smOutBox_temp.setMessagecontent(lastMsg);
smsMasList.add(smOutBox_temp);
}
for(Object o:smsMasList){
SmsOutBox smsOutBox2 = (SmsOutBox)o;
System.out.println(smsOutBox2.getMessagecontent());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getTrace(Throwable t) {
StringWriter stringWriter= new StringWriter();
PrintWriter writer= new PrintWriter(stringWriter);
t.printStackTrace(writer);
StringBuffer buffer= stringWriter.getBuffer();
return buffer.toString();
}
}
短信不是你想发想发就能发 , 是收费的,我们公司是租用的移动MAS平台的短信发送接收平台,上面那是和一个和mas同步的一个小程序,租用别人的mas平台是收费的 , 平台有很多自己选择,有发送接口可以调,发送内容自己提供
java怎么实现群发短信的功能JAVA实现短信群发java发送短信接口代码的步骤java发送短信接口代码:
1、使用第三方短信平台服务商 , 接入短信服务java发送短信接口代码;
2、调用短信提交页面发送请求;
3、服务器向第三方短信平台提交发送请求;
4、短信平台通过运营商将短信下发至用户的手机上 。
以下是秒赛短信平台JAVA短信验证码接口代码示例
package test;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.lang3.StringUtils;
public class Apis {
// 短信发送接口的http地址 , 请咨询客服
private static String url = “xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
// 编码格式 。发送编码格式统一用UTF-8
private static String ENCODING = “UTF-8”;
public static void main(String[] args) throws IOException, URISyntaxException {
// 账号
String account = “************************”;
// 密码
String pswd = “************************”;
// 修改为您要发送的手机号 , 多个用,分割
String mobile = “13*********”;
// 设置您要发送的内容
String msg = “【秒赛科技】您的验证码是:1234”;
// 发短信调用示例
System.out.println(Apis.send(account,pswd, mobile, msg));
}
/**
* 发送短信
*
* @param account
*account
* @param pswd
*pswd
* @param mobile
*手机号码
* @param content
*短信发送内容
*/
public static String send(String account,String pswd, String mobile, String msg) {
NameValuePair[] data = https://www.04ip.com/post/{ new NameValuePair(“account”, account),
new NameValuePair(“pswd”, pswd),
new NameValuePair(“mobile”, mobile),
new NameValuePair(“msg”, msg),
new NameValuePair(“needstatus”, “true”),
new NameValuePair(“product”, “”) };
return doPost(url, data);
}
/**
* 基于HttpClient的post函数
* PH
* @param url
*提交的URL
*
* @param data
*提交NameValuePair参数
* @return 提交响应
*/
private static String doPost(String url, NameValuePair[] data) {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);
// method.setRequestHeader(“ContentType”,
// “application/x-www-form-urlencoded;charset=UTF-8”);
method.setRequestBody(data);
// client.getParams() 。setContentCharset(“UTF-8”);
client.getParams() 。setConnectionManagerTimeout(10000);
try {
client.executeMethod(method);
return method.getResponseBodyAsString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
java程序怎么调用webservice接口,实现发送短信功能给你一个最简单的方法:
第一、根据 拿到WSDL文件 。
第二、根据Axis的jar包,把WSDL文件生成客服端java代码 。(可以把java文件打成jar文件 , 便于管理 。怎么生成java代码,百度里都有说明我就不写了 。)
第三、在你工程里用AXIS的功能属性,调用外部接口;给你一个格式模板:
MobileCodeWSLocator l=new MobileCodeWSLocator();//MobileCodeWSLocator是WSDL文件生成客服端java类;
MobileCodeWSSoap s=l.getMobileCodeWSSoap();();//MobileCodeWSSoap 是WSDL文件生成客服端java类
String m=s.getMobileCodeInfo("13811534742", "");
如果你用Axis生成的java类 , 格式和上面一样;自己参考一下就懂了 。
你上面明显的连接异常,第三方服务明显没有开,WEBSERVICE可以设置户名、密码,像行所有的WEBSERVICE都设置 , 安全考虑吧 。
java如何实现发送短信验证码功能?1、创建一个Http的模拟请求工具类,然后写一个POST方法或者GET方法
/** * 文件说明 * @Description:扩展说明 * @Copyright: XXXX dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */package com.demo.util; import java.io.IOException;import java.util.Map; import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.SimpleHttpConnectionManager;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.methods.PostMethod; /** * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser: feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX * @Version:V6.0 */public class HttpRequestUtil {/*** HttpClient 模拟POST请求* 方法说明* @Discription:扩展说明* @param url* @param params* @return String* @Author: feizi* @Date: XXXX年XX月XX日 XX:XX:XX* @ModifyUser:feizi* @ModifyDate: XXXX年XX月XX日 XX:XX:XX*/ public static String postRequest(String url, MapString, String params) {//构造HttpClient的实例HttpClient httpClient = new HttpClient();//创建POST方法的实例PostMethod postMethod = new PostMethod(url);//设置请求头信息postMethod.setRequestHeader("Connection", "close");//添加参数for (Map.EntryString, String entry : params.entrySet()) {postMethod.addParameter(entry.getKey(), entry.getValue());}//使用系统提供的默认的恢复策略,设置请求重试处理 , 用的是默认的重试处理:请求三次httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false);//接收处理结果String result = null;try {//执行Http Post请求httpClient.executeMethod(postMethod);//返回处理结果result = postMethod.getResponseBodyAsString();} catch (HttpException e) {// 发生致命的异常,可能是协议不对或者返回的内容有问题System.out.println("请检查输入的URL!");e.printStackTrace();} catch (IOException e) {// 发生网络异常System.out.println("发生网络异常!");e.printStackTrace();} finally {//释放链接postMethod.releaseConnection();//关闭HttpClient实例if (httpClient != null) {((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();httpClient = null;}}return result; }/*** HttpClient 模拟GET请求* 方法说明* @Discription:扩展说明* @param url* @param params* @return String* @Author: feizi* @Date: XXXX年XX月XX日 XX:XX:XX* @ModifyUser:feizi* @ModifyDate: XXXX年XX月XX日 XX:XX:XX*/ public static String getRequest(String url, MapString, String params) {//构造HttpClient实例HttpClient client = new HttpClient();//拼接参数String paramStr = "";for (String key : params.keySet()) {paramStr = paramStr""key"="params.get(key);}paramStr = paramStr.substring(1);//创建GET方法的实例GetMethod method = new GetMethod(url"?"paramStr);//接收返回结果String result = null;try {//执行HTTP GET方法请求client.executeMethod(method);//返回处理结果result = method.getResponseBodyAsString();} catch (HttpException e) {// 发生致命的异常,可能是协议不对或者返回的内容有问题System.out.println("请检查输入的URL!");e.printStackTrace();} catch (IOException e) {// 发生网络异常System.out.println("发生网络异常!");e.printStackTrace();} finally {//释放链接method.releaseConnection();//关闭HttpClient实例if (client != null) {((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown();client = null;}}return result; }}
2、在创建一个类,生成验证码,然后传递相应的参数(不同的短信平台接口会有不同的参数要求,这个一般短信平台提供的接口文档中都会有的,直接看文档然后按要求来即可)
/** * 文件说明 * @Description:扩展说明 * @Copyright: XXXX dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */package com.demo.util; import java.net.URLEncoder;import java.util.HashMap;import java.util.Map; /** * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser: feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX * @Version:V6.0 */public class SendMsgUtil {/*** 发送短信消息* 方法说明* @Discription:扩展说明* @param phones* @param content* @return* @return String* @Author: feizi* @Date: 2015年4月17日 下午7:18:08* @ModifyUser:feizi* @ModifyDate: 2015年4月17日 下午7:18:08*/ @SuppressWarnings("deprecation") public static String sendMsg(String phones,String content){//短信接口URL提交地址String url = "短信接口URL提交地址";MapString, String params = new HashMapString, String();params.put("zh", "用户账号");params.put("mm", "用户密码");params.put("dxlbid", "短信类别编号");params.put("extno", "扩展编号");//手机号码 , 多个号码使用英文逗号进行分割params.put("hm", phones);//将短信内容进行URLEncoder编码params.put("nr", URLEncoder.encode(content));return HttpRequestUtil.getRequest(url, params); }/*** 随机生成6位随机验证码* 方法说明* @Discription:扩展说明* @return* @return String* @Author: feizi* @Date: 2015年4月17日 下午7:19:02* @ModifyUser:feizi* @ModifyDate: 2015年4月17日 下午7:19:02*/ public static String createRandomVcode(){//验证码String vcode = "";for (int i = 0; i6; i) {vcode = vcode(int)(Math.random() * 9);}return vcode; }/*** 测试* 方法说明* @Discription:扩展说明* @param args* @return void* @Author: feizi* @Date: XXXX年XX月XX日 XX:XX:XX* @ModifyUser:feizi* @ModifyDate: XXXX年XX月XX日 XX:XX:XX*/ public static void main(String[] args) {//System.out.println(SendMsgUtil.createRandomVcode());//System.out.println("ecb=12".substring(1));System.out.println(sendMsg("18123456789,15123456789", "尊敬的用户,您的验证码为"SendMsgUtil.createRandomVcode()",有效期为60秒,如有疑虑请详询XXX-XXX-XXXX【XXX中心】")); }
然后执行一下 , 一般的情况下参数传递正确 , 按照接口文档的规范来操作的话 , 都会发送成功的 , 手机都能收到验证码的,然后可能会出现的问题就是:发送的短信内容有可能会出现中文乱码,然后就会发送不成功,按照短信平台的要求进行相应的编码即可 。一般都会是UTF-8编码 。
用Java调用短信接口给手机发送短信怎么写代码??接口已经有了,是一个url.那java发送短信接口代码你要做java发送短信接口代码的就是向这个URL发送数据就好java发送短信接口代码,给个例子java发送短信接口代码:
publicclassHttptest1{
8
9publicstaticvoidmain(String[] args){
10
11URL url=null ;
12HttpURLConnection conn=null ;
13OutputStream outStream=null ;
14InputStream inStream=null ;
15
16try{
17url=newURL( "" );
18conn=(HttpURLConnection) url.openConnection();
19conn.setDoOutput( true );
20conn.setDoInput( true );
21
22String sendXml=" ?xml version=\ " 1.0 \ "encoding=\ " UTF - 16 \ " ?!DOCTYPE SigMailCommand SYSTEM \ " SigMail.dtd\ " " ;// XML数据
23sendXml=" SigMailCommand Name=\ " checkuser\ " Param Name=\ " domainname\ " test.com.cn/Param " ;
24sendXml=" Param Name=\ " username\ " admin/Param/SigMailCommand " ;
25
26outStream=conn.getOutputStream();
27
28// 准备通过CONN对象写入XML数据
29BufferedWriter bw=newBufferedWriter( newjava.io.OutputStreamWriter(outStream,
30" UTF-16 " ));
31bw.write(sendXml);
32bw.flush();
33bw.close();
34
35// DataOutputStream dataOutStream = new DataOutputStream(outStream);
36// dataOutStream.writeChars(xml);
37// dataOutStream.flush();
38// dataOutStream.close();
39
40
41// 准备通过CONN对象读取返回的XML数据
42
43inStream=conn.getInputStream();
44StringBuffer returnXml=newStringBuffer( "" );
45BufferedReader rd=newBufferedReader( newInputStreamReader(inStream,
46" UTF-16 " ));
47for(String line=null ; (line=rd.readLine())!=null ;){
48returnXml.append(line);
49}
50System.out.println(returnXml.toString());
51rd.close();
52}catch(IOException ex){
53ex.printStackTrace();
54} finally {
55try{
56if(outStream!=null )
57outStream.close();
58if(inStream!=null )
59inStream.close();
60if(conn!=null )
61conn.disconnect();
62}catch(IOException e){
63//TODO 自动生成 catch 块
64e.printStackTrace();
65}
66}
67
68}
69
70 }
java怎么同步发送及异步发送短信例子解析发送短信的接口
根据自己的情况选择服务商 。
开发文档
从开发文档中我们可以看到. 可以直接使用http请求也可以使用WebService请求发送短信. 由于DEMO文件夹下的java和jsp文件夹中的代码都是使用http请求发送短信. 所以这里就不再细说了, 我们使用WebService的方式演示发送短信.
生成客户端代码
从接口文档中我们知道它的WebService的WSDL的url为: 那么我们可以执行下面的命令生成客户端代码:
wsimport -keep
其中wsimport是JDK自带的工具, -keep url选项是"保留生成的文件". 该命令会在当前目录下生成sms.cn.ihuyi._106包, 以及众多的类. 接下来开始编写我们自己的代码.
定义接口
为了方便, 这里我们首先定义一个接口:
Sms.java
public interface Sms {
/**
* 向mobile发送短信, 内容为message
*
* @param mobile 手机号
* @param message 短信内容
* @return 成功返回-1, 否则返回其他值
*/
int sendMessage(String mobile, String message);
}
这个接口很简单, 只有一个方法. 这个方法用来发送短信.
同步发送短信
接下来我们首先实现一个同步发送短信的类:
IhuyiSmsImpl.java
public class IhuyiSmsImpl implements Sms {
private String account;
private String password;
public void setAccount(String account) {
this.account = account;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public int sendMessage(String mobile, String message) {
cn.ihuyi._106.Sms factory = new cn.ihuyi._106.Sms();
SmsSoap smsSoap = factory.getSmsSoap();
SubmitResult submit = smsSoap.submit(account, password, mobile, message);
int code = submit.getCode();
if(code == 2){
return -1;
}
System.out.println("发送短信失败, code:"code);
return code;
}
}
异步发送短信
由于发送短信涉及到网络通信, 因此sendMessage方法可能会有一些延迟. 为了改善用户体验, 我们可以使用异步发送短信的方法. 原理很简单: 如果用户请求发送短信, 我们不是直接调用IhuyiSmsImpl的sendMessage方法, 而是将请求保存起来(生产者), 然后告诉用户: 短信发送成功. 之后有若干个消费者取出任务, 调用sendMessage方法发送短信.
这里, 我使用线程池完成上面的任务:
AsyncSmsImpl.java
public class AsyncSmsImpl implements Sms {
public Sms sendSms;
private ExecutorService executorService = Executors.newFixedThreadPool(3);
public void setSendSms(Sms sendSms) {
this.sendSms = sendSms;
}
@Override
public int sendMessage(String mobile, String message) {
try {
executorService.submit(() - sendSms.sendMessage(mobile, message));
}
catch(Exception e) {
Sysemt.out.println("提交任务时发生错误"e);
return 0;
}
return -1;
}
public void destroy(){
try{
executorService.shutdown();
}
catch(Exception e){}
}
}
在第17行, 我们获得远程对象的一个代理对象. 之后就可以通过这个代理对象进行发送短信, 查询账户余额等操作.
第18行, 使用该代理对象的submit方法提交了短信内容. 该方法的参数信息及返回值含义在接口文档中有详细的说明.
第19行我们获得了结果的状态码. 根据文档上的说明, 状态码为2说明提交成功. 简单起见, 这里我们只关注提交成功的情况. 需要注意的是, 状态码为2只是说明提交成功. 根据官网上的"3-5秒内响应、100%到达", 我们可以推测. 如果提交成功, 那么基本上3-5秒内,短信就会发送成功, 根据用户的网络情况, 可能稍有延迟用户就可以收到短信.
使用这段代码发送短信也很简单, 直接new一个对象, 设置好账号和密码就可以发送短信了.
代码很简单, 直接将Sms接口的sendMessage(mobile, message)方法作为一个任务加到线程池的任务队列中. 这样等到有空闲线程时, 就会执行sendSms.sendMessage(mobile, message)发送短信. 这里我们假设只要保存到线程池就可以成功发送短信. 因为发送失败的情况实际上很罕见.
【java发送短信接口代码 java发送短信接口代码怎么写】java发送短信接口代码的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java发送短信接口代码怎么写、java发送短信接口代码的信息别忘了在本站进行查找喔 。

    推荐阅读