你的位置:首页 > Java教程

[Java教程]JAVA如何实现发送短信


今天看到了一个需求,需要做一个发送短信的功能,网上找了找,大概有这几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵(3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.com.cn/),听说了网建提供了几条免费的短信,就上去试了试,调用了下他的接口(实为调用接口,其实就是拷贝了一段代码,呵呵~),代码如下,和大家分享一下:

 

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 SendMsg {

 

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", "注册用户名"),

new NameValuePair("Key", "KEY并非注册密码"),

new NameValuePair("smsMob", "发送的手机号码*****"),

//短信必须是完整的短信(详情网建见官网)才能发出。刚才返回已经发送成功,但是手机一直没收到短信,

//突然网建接到了网建工作人员的电话,告诉我了原因,还是不错的。废话太多了,嘿嘿~~

new NameValuePair("smsText", "发送的短信") };

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-codec-1.4

commons-httpclient-3.1.jar

commons-logging-1.1.1.jar

更多