JAVA发送手机短信,大体有以下几种方法:
(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice接口进行发送,但是需要进行注册;
(2)使用短信猫的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备短信猫;
(3)使用中国网建提供的SMS短信平台,这里实现的demo也是基于这个接口是发送的;(需要注册)
(4)采用中国移动的飞信接口,但是针对用户是对手机开通飞信的用户。
package com;
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class Transmission {
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码
NameValuePair[] data = {
new NameValuePair("Uid", "XXX"),//网站的注册用户名
new NameValuePair("Key", "XXXXX"),//接口密钥,在中国网建上你的注册号那边找</span>
new NameValuePair("smsMob", "186********"),//测试手机号,免费的是只能写你的注册号码
new NameValuePair("smsText",
"你好,这个网站给你问好了!【Road】") };//信息内容不要写测试字样
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:" + statusCode);
for (Header h : headers) {
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes(
"gbk"));
System.out.println(result); // 打印返回消息状态
post.releaseConnection();
}
}
然后下载该网站提供的jar包:
commons-logging-1.1.1.jar
commons-codec-1.4.jar
commons-httpclient-3.1.jar