Java利用中国网建SMS短信通平台发送手机短信

JAVA发送手机短信,流传有几种方法:
(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();
	}
	
}

猜你喜欢

转载自shihuan830619.iteye.com/blog/2055715