SMS短信通API——(1)Java应用发送手机短信

晨曦之光 发布于 2012/04/24 14:47
阅读 1K+
收藏 2

1. SMS短信通

SMS短信通是中国网建提供的一个发送短信的应用,一般用于企业级用户。本博文介绍如何编写最简单的Hello World级Java程序,实现向指定手机号发送短信的功能。由于SMS短信通是一款商业应用,需要注册用户,且仅提供5个免费短信和3个免费彩信的发送机会。超出部分,必须充值才能使用。


2. 注册SMS短信通用户

登录 http://sms.webchinese.cn 网站,注册用户,记得保存接口安全密码,用于编写程序使用。假设我们注册的用户名为“Poechant”,接口安全密码为"1234abcd5678efgh”。


3. 短信发送接口

(1)GBK编码发送接口地址:
http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容 


(2)UTF-8编码发送接口地址:
http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容

(3)获取短信数量接口地址(UTF8):
http://sms.webchinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用户名&Key=接口安全密码

(4)获取短信数量接口地址(GBK):
http://sms.webchinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用户名&Key=接口安全密码


4. 使用的Java库

可以使用commons-httpclient.jar,而该库依赖于commons-codec.jar 和commons-logging.jar。所以推荐下载:

commons-codec-1.4.jar

commons-logging-1.1.1.jar

commons-httpclient-3.1.jar

注意:不过目前commons-httpclient-3.1.jar已经不存在,其所实现的功能,目前已经被加入到httpcomponents-client的Apache项目中。


5. 实例程序:

package com.sinosuperman.sms;

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;

public class Test {
	
	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", "Poechant"),
				new NameValuePair("Key", "1234abcd5678efgh"),
				new NameValuePair("smsMob", "12345678901"),
				new NameValuePair("smsText", "中国移动谨代表XX提醒您,好吃好喝尽早开饭!")
		};
		
		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();
	}
}


6. 网管选择

你可以选择三种:默认网关、106网管(带签名)和广告网管。


7. 使用事项

(1)给陌生人发广告短信,请您切换到广告网关发送,如发现用106网关发送立即封号;
(2)106网关不允许给陌生人发广告,否则封号,允许给老客户、会员或员工发送信息;
(3)106行业网关独立请联系客服,量大开通。
(4)本站全部网关对联通和电信用户手机接收到的短信全部采用106网关发送,即发即到。
(5)广告网关发移动手机采用106网关模拟手机号码,为空号,部分时段有延时到达率99%;



原文链接:http://blog.csdn.net/poechant/article/details/7184119
加载中
返回顶部
顶部