標籤:rgs .com key getname throw 方法 格式 amp console
首先我們需要去這裡http://sms.webchinese.cn/申請一個帳號和簡訊介面秘鑰,在該網址下有許多語言的demo介紹,下面我主要為大家貼一個C#中的Helper類:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Security.Cryptography;using System.Text;using System.Net;using System.IO;namespace StudyProgram.LeiKu{ public class MessageHelper { private string url = @"http://utf8.api.smschinese.cn/"; private string userid = ""; private string key = "";//秘鑰 private string smsMob; private string smsText; /// <summary> /// 帶參建構函式 /// </summary> /// <param name="isMD5">是否需要MD5加密</param> /// <param name="userid">申請的使用者名稱</param> /// <param name="key">申請的秘鑰</param> /// <param name="mob">發送的手機(多個需要以‘,‘串連)</param> /// <param name="text">資訊內容(注意簽名格式【XX網】)</param> public MessageHelper(bool isMD5, string userid, string key, string mob, string text) { this.userid = "/?Uid=" + userid; this.key = isMD5 ? "&KeyMD5=" + GetMD5Str(key) : "&Key=" + key; this.smsMob = "&smsMob=" + mob; this.smsText = "&smsText=" + text; } //MD5加密 private string GetMD5Str(string str) { MD5 md5 = new MD5CryptoServiceProvider(); StringBuilder sbStr = new StringBuilder(); byte[] buffer = Encoding.Default.GetBytes(str); byte[] dataBuff = md5.ComputeHash(buffer);//計算指定字元數組的雜湊值 foreach (byte d in dataBuff) sbStr.Append(d.ToString("x2")); return (sbStr + "").ToUpper(); } private string GetResponse() { var targetUrl = url + userid + key + smsMob + smsText; var res = ""; try { HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targetUrl); hr.Method = "GET"; hr.Timeout = 30 * 60 * 1000;//30分鐘逾時 WebResponse hs = hr.GetResponse(); Stream sr = hs.GetResponseStream(); StreamReader ser = new StreamReader(sr, Encoding.Default); res = ser.ReadToEnd(); } catch (Exception ex) { res = ex.Message; throw ex; } return res; } private enum Result { 沒有該使用者賬戶 = -1, 介面密鑰不正確 = -2, MD5介面祕密金鑰加密不正確 = -21, 簡訊數量不足 = -3, 該使用者被禁用 = -11, 簡訊內容出現非法字元 = -14, 手機號格式不正確 = -4, 手機號碼為空白 = -41, 簡訊內容為空白 = -42, 簡訊簽名格式不正確 = -51, IP限制 = -6 } public string GetSendStr() { var res = ""; var response = GetResponse(); if (response != "") { int temp; if (Int32.TryParse(response, out temp)) { if (temp > 0) res = string.Format("{0}條資訊發送成功", temp); else res = Enum.GetName(typeof(Result), temp); } else res = "發送失敗:" + response; } else res = "發送失敗"; return res; } }}
調用方法:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ShortMessage{ class Program { static void Main(string[] args) { StudyProgram.LeiKu.MessageHelper msh = new StudyProgram.LeiKu.MessageHelper(true, "申請使用者名稱", "申請的秘鑰", "1234567890", "驗證碼:無敵 【華哥】"); var res = msh.GetSendStr(); Console.WriteLine(res); Console.ReadLine(); } }}
C#調用SMS簡訊介面,輕鬆搞定傳送簡訊的任務。。。。