首先去SMS注册一下,得到用户名和密钥。然后用以下代码,即可以发短信了。http://sms.webchinese.cn/api.shtml
package com.SmsTest.Test;
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;
/*
* author:利用SMS平台发送短信
*/
public class SendMsg {
public SendMsg(){
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", "密码"),new NameValuePair("smsMob","手机号"),new NameValuePair("smsText","此乃测试SMS手机发送平台的短信,为代码自动发出。【签名】")};
post.setRequestBody(data);
try {
client.executeMethod(post);
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException 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 = "";
try {
result = new String(post.getResponseBodyAsString().getBytes("gbk"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(result);
post.releaseConnection();
}
public static void main(String[] args){
SendMsg msg = new SendMsg();
}
}
需要注意几点:
1.注册后,在代码中填入自己的用户名和密钥,记住是密钥,不是密码。在SMS的页面上可以查看到密钥,自己找找。
2.需要导入HttpClient的几个jar包。
3.只能免费发5条短信,如果还需用,就需要充钱。
反正很方便就是了,在需要有短信功能的系统中可以用到。