说明,JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备, (3)使用中国网建提供的SMS短信平台.
这里使用中国网建提供的API给手机发送短信。为了使用中国网建给对方手机发送短信,需要以下几步操作:
1.登录中国网建,地址为:http://sms.webchinese.cn/
2.注册,注册后你就会有用户名和密码,密码会自动发到你的手机里
3.获取网管接口密码,至于如何获得网关接口密码,我是这样偶尔获得的(注意,这里的网管接口密码并不是你注册时发送到你手机里的密码,那密码是登录密码)。在该网站里尝试发一条短信,发短信时会有相应的提示,在发送的过程中会出现你的网关接口密码。
注意:你要保存好你的网关接口秘密,因为每次当你使用代码发送信息时都需要这个网关接口密码。
以下代码所使用的jar可以从http://sms.webchinese.cn/直接获得。
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;
/**
* @author 刘立喜
*/
public class SendMsg_webchinese {
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", "在此填写网关接口密码"),
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();
}
}