因为项目需要通过发送手机短信的方式提醒用户,所以学习了一下用java程序来实现发送短信功能:
本例是通过使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/default.shtml)实现
Demo.java:
package com.cz.message;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class Demo {
public static void main(String[] args) {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://sms.webchinese.cn/web_api/");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码
NameValuePair[] data = { new NameValuePair("Uid", "*****"), // 注册的用户名
new NameValuePair("Key", "*****"), // 短信api接口下的key密钥,不是你的登录密码
new NameValuePair("smsMob", "*****"), // 手机号码
new NameValuePair("smsText", "java程序发的信息!!") };
post.setRequestBody(data);
try {
client.executeMethod(post);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:" + statusCode);
for (Header h : headers) {
System.out.println(h.toString());
}
String result = null;
try {
result = new String(post.getResponseBodyAsString().getBytes(
"gbk"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(result);
post.releaseConnection();
}
}
运行本程序首先的代入三个jar包:
commons-codec-1.4
commons-httpclient-3.1
commons-logging-1.1.1
见上传附件: