欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-16 16:58:17
...
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();
	}
	
}
相关标签: Java sms