JAVA发送手机短信,流传有几种方法:
(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;
(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备;
(3)使用中国网建提供的SMS短信平台(申请账号地址:
http://sms.webchinese.cn/default.shtml)
附件里是中国网建提供的SMS短信平台的在线API地址及Java调用接口需要的jar包。
(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;
(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备;
(3)使用中国网建提供的SMS短信平台(申请账号地址:
http://sms.webchinese.cn/default.shtml)
附件里是中国网建提供的SMS短信平台的在线API地址及Java调用接口需要的jar包。
package com.shihuan.core.common.mail;
import java.io.IOException;
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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SendSms {
protected static Logger logger = LoggerFactory.getLogger(SendSms.class);
/**
* 功能: 通过中国网建SMS短信平台发送手机短信
* @param uri 网建短信平台接口地址 (例如: http://utf8.sms.webchinese.cn 或者 http://gbk.sms.webchinese.cn)
* @param headerValue 短信头中的值 (例如: application/x-www-form-urlencoded;charset=utf-8 或者 application/x-www-form-urlencoded;charset=gbk)
* @param username 在网建短信平台申请的用户名 (例如: testshihuan)
* @param password 在网建短信平台申请的密码 (例如: shihuan123)
* @param mobilephone 目的地手机号码 (例如: 13856756789,13578903476)
* @param smsContent 短信内容 (例如: "你好!I am shihuan...")
* @param resultcset 短信返回结果的编码 (例如: utf-8 或者 gbk)
* @throws HttpException
* @throws IOException
*/
public static void sendMobileInfo(String uri, String headerValue, String username, String password, String mobilephone, String smsContent, String resultcset) throws HttpException, IOException{
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(uri);
post.addRequestHeader("Content-Type", headerValue); //在头文件中设置转码
NameValuePair[] data = {new NameValuePair("Uid", username), new NameValuePair("Key", password), new NameValuePair("smsMob", mobilephone), new NameValuePair("smsText", smsContent)};
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
logger.info("statusCode: " + statusCode);
for (Header h : headers) {
logger.info(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes(resultcset));
logger.info(result);
post.releaseConnection();
}
}