我做的手机发送短信,是根据别人提供的接口来做的,接口内容如下:
短信平台接口说明
1、 概述
1.1 接口描述
各个系统在发送短信时需调用本接口。
1.2 接口协议和数据格式
短信平台接口采用HTTP传输协议,数据格式为XML,编码为UTF-8。
1.3 接口地址
远程服务调用接口地址:http://10.0.7.40:8080/smsHttpServlet.servlet。
2、 接口详细说明
2.1 发送短信请求的数据内容
名称 |
字段 |
数据类型 |
非空 |
备注 |
业务编码 |
syscode |
varchar2 (10) |
非空 |
请向信息中心索取 |
部门编码 |
depcode |
varchar2 (50) |
非空 |
填写:00000000 |
部门名称 |
depname |
varchar2 (50) |
非空 |
填写:安华农业保险股份有限公司 |
密码 |
password |
varchar2 (50) |
非空 |
请向信息中心索取,需MD5加密 |
接收人手机号 |
mobile |
varchar2 (11) |
非空 |
以1开头的11位手机号 |
短信内容 |
content |
varchar2 (500) |
非空 |
每个英文或汉字为1个单位,最多500 |
2.2 发送短信请求XML格式样例
<?xml version="1.0" encoding="UTF-8"?>
<xmlRequest>
<header>
<syscode>(业务编码请向信息中心索取)</syscode>
<depcode>00000000</depcode>
<depname>安华农业保险股份有限公司</depname>
<password>(密码请向信息中心索取,请传输MD5加密后的密码)</password>
</header>
<body>
<sms>
<mobile>接收人手机号</mobile>
<content>短信内容</content>
</sms>
</body>
</xmlRequest>
2.3 获取发送结果的返回数据内容
名称 |
字段 |
数据类型 |
非空 |
备注 |
业务编码 |
recode |
varchar2 (10) |
非空 |
成功:000,失败:001 |
2.4 获取发送结果返回XML格式样例
<?xml version="1.0" encoding="UTF-8"?>
<xmlResponse>
<header>
<recode>000</recode>
</header>
</xmlResponse>
3、 注意事项
(1)发送短信请求中的业务编码和密码请向信息中心索取,并注意妥善保管,切勿泄露;
(2)短信内容中禁止使用各类敏感词语;
(3)短信内容中请不要使用“测试”二字,否则会出现接口返回发送成功的结果,而该短信实际上并未发出的情况;
(4)发送短信为收费业务,请在测试时注意节约使用。
二、我自己写的代码如下:
首先需要把commons-httpclient-3.0.jar包导入到lib目录下;
其次写调用方法:
/**
* 发送单个短信
*/
public String sendMessage(){
try {
StringBuffer bufxml = new StringBuffer();
bufxml.append("<?xml version=");
bufxml.append("\"1.0\"");
bufxml.append(" encoding=");
bufxml.append("\"UTF-8\"");
bufxml.append("?><xmlRequest><header><syscode>");
bufxml.append("业务编码");
bufxml.append("</syscode><depcode>");
bufxml.append("00000000");
bufxml.append("</depcode><depname>安华农业保险股份有限公司</depname><password>密码</password></header><body><sms><mobile>");
bufxml.append(手机号);
bufxml.append("</mobile><content>");
bufxml.append(短信内容);
bufxml.append("</content></sms></body></xmlRequest>");
PostMethod post = new PostMethod("http://10.0.7.40:8080/smsHttpServlet.servlet");//请求地址
//这里添加xml字符串
post.setRequestBody(bufxml.toString());
// 指定请求内容的类型
post.setRequestHeader("Content-type", "text/xml; charset=UTF-8");
HttpClient httpclient = new HttpClient();//创建 HttpClient 的实例
int result;
try {
result = httpclient.executeMethod(post);
System.out.println("Response status code: " + result);//返回200为成功
System.out.println("Response body: ");
System.out.println(post.getResponseBodyAsString());//返回的内容
String responseXml = post.getResponseBodyAsString();
if(!"".equals(responseXml) && responseXml != null ){
if(responseXml.contains("000")){
system.out.println("发送成功");
}else if(responseXml.contains("001")){
system.out.println("发送失败"); }
}
post.releaseConnection();//释放连接
} catch (HttpException e) {
system.out.println("发送失败");
e.printStackTrace();
} catch (IOException e) {
system.out.println("发送失败");
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
this.message = this.getFailMessage("发送失败");
}
return "json";
}