SMS簡訊通API——(1)Java應用傳送手機簡訊

鍾超發表於2012-01-07

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%;


相關文章