因为项目需要通过发送手机短信的方式提醒用户,所以学习了一下用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
见上传附件: