1. 程式人生 > >程式設計實現簡訊傳送三種方式

程式設計實現簡訊傳送三種方式

2014年09月05日⁄ 綜合⁄ 共 3138字 ⁄ 字號    ⁄ 評論關閉

方案一: 利用sina webservice傳送簡訊

通過程式設計實現簡訊息的傳送是一件比較繁瑣的事情,目前,解決方法是通過計算機和手機的連線,使用手機程式語言編寫相關的簡訊程式來實硬體設施,並且必須具備手機程式設計的相關知識。本例項通過Web
Service技術中介面實現遠端訪問現有的簡訊傳送伺服器,並通過呼叫伺服器的方法來發送簡訊。

WebService的伺服器地址是        http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl。這個Web Servic僅提供了一個傳送簡訊的方法“sendXml”。此方法的語法格式如下:

string sendXml (carrier , userid , password ,mobilenumber , content , msgtype )

endXml方法中的6個引數均為string型別,並且sendXml方法的返回值也是string型別。
以下是sendXml方法中的6個引數的具體說明如下:
· carrier:運營商名稱,使用時此引數並沒有什麼具體要求,即這裡面可以隨便輸入,輸入的字串也不會在對方手機中有任何顯示。
· userid:在新浪網上註冊的手機號。
· password:在新浪網成功註冊手機後,新浪網反饋回來的密碼。
· mobilenumber:要傳送簡訊到對方的手機號碼。
· content:所要傳送短訊息的內容。
· msgtype:傳送短訊息的型別。
呼叫此Web Service只需在VS2005.NET中直接“新增Web引用”,把該地址輸入即可。
注意:使用新浪服務傳送手機簡訊時,需要在新浪網站上進行手機註冊,註冊網址為http://sms.sina.com.cn/。
2.補充說明
在使用Web Service傳送手機簡訊時,必須要保證本地計算機與網際網路相連,這樣才能呼叫新浪提供的Web Service傳送簡訊。如果本地計算機沒有上網,則執行

程式碼會出現錯誤。

方案二: 利用簡訊貓硬體裝置進行傳送

所謂簡訊貓,其實是一種用來收發簡訊的裝置,他和我們用的手機一樣,需要手機SIM卡的支援,在需要收發簡訊的時候,在簡訊貓裡面插入一張我們平時用的手機卡,插上電源,通過(USB或者串列埠、網口)資料線和電腦相連,在電腦的應用管理軟體中就可以實現簡訊收發的功能。

方案三:利用中國網建SMS簡訊平臺進行傳送

MS簡訊通API下行介面引數 簡訊上行回覆API
GBK編碼傳送介面地址:

http://gbk.sms.webchinese.cn/?Uid=本站使用者名稱&Key=介面安全密碼&smsMob=手機號碼&smsText=簡訊內容 

UTF-8編碼傳送介面地址:

http://utf8.sms.webchinese.cn/?Uid=本站使用者名稱&Key=介面安全密碼&smsMob=手機號碼&smsText=簡訊內容

獲取簡訊數量介面地址(UTF8):

http://sms.webchinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站使用者名稱&Key=介面安全密碼

獲取簡訊數量介面地址(GBK):

http://sms.webchinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站使用者名稱&Key=介面安全密碼

提示:HTTP呼叫URL介面時, 引數值必須URL編碼後再呼叫

引數變數 說明
Gbk編碼Url http://gbk.sms.webchinese.cn/
Utf-8編碼Url http://utf8.sms.webchinese.cn/
Uid 本站使用者名稱(如您無本站使用者名稱請先註冊)[免費註冊]
Key 註冊時填寫的介面祕鑰(可到使用者平臺修改介面祕鑰)[立刻修改]
如需要加密引數,請把Key變數名改成KeyMD5,
KeyMD5=介面祕鑰32位MD5加密,大寫。
smsMob 目的手機號碼(多個手機號請用半形逗號隔開)
smsText 簡訊內容,最多支援300個字,普通簡訊70個字/條,長簡訊64個字/條計費
多個手機號請用半形,隔開
如:13888888886,13888888887,1388888888 一次最多對100個手機發送
簡訊內容支援長簡訊,最多300個字,普通簡訊66個字/條,長簡訊64個字/條計費

簡訊傳送後返回值 說 明
-1 沒有該使用者賬戶
-2 介面金鑰不正確 [檢視金鑰]
不是賬戶登陸密碼
-21 MD5介面金鑰加密不正確
-3 簡訊數量不足
-11 該使用者被禁用
-14 簡訊內容出現非法字元
-4 手機號格式不正確
-41 手機號碼為空
-42 簡訊內容為空
-51 簡訊簽名格式不正確
介面簽名格式為:【簽名內容】
大於0 簡訊傳送數量
注:呼叫API介面,請登入平臺,申請106閘道器傳送,即發即到!
  傳送測試簡訊請勿輸入:簡訊測試等詞語,請直接提交您要傳送的簡訊內容;
  介面傳送簡訊時請在內容後加簽名:【XX公司或XX網名稱】,否者會被遮蔽。
  簡訊簽名可在使用者平臺平臺上設定,也可以在簡訊內容後,直接加入。

java 程式示例:

import java.io.UnsupportedEncodingException;

import org.apache.commons.httpclient.Header;

importorg.apache.commons.httpclient.HttpClient;

importorg.apache.commons.httpclient.NameValuePair;

importorg.apache.commons.httpclient.methods.PostMethod;

public class SendMsg_webchinese {

public static void main(String[] args)throwsException

{

HttpClient client = new HttpClient();

PostMethod post = newPostMethod("http://gbk.sms.webchinese.cn");

post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在標頭檔案中設定轉碼

NameValuePair[] data ={ newNameValuePair("Uid", "本站使用者名稱"),new NameValuePair("Key", "介面安全密碼"),new NameValuePair("smsMob","手機號碼"),new NameValuePair("smsText","簡訊內容")};

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 = newString(post.getResponseBodyAsString().getBytes("gbk"));

System.out.println(result);

post.releaseConnection();

}

}

經本人測試,本方法傳送簡訊延遲很大,而且存在傳送丟失的情況。