发短信
前言
这是一个短信测试的小例子。首先要准备的是注册一个账号,当然账号是免费的,有5条免费的短信可以发送。注册地址:http://www.smschinese.cn/Login.shtml
有了账号、秘钥,还可以看看短信服务商提供的api,地址:http://www.smschinese.cn/api.shtml
通过api就可以实现了,当然,每个服务商的api都不一样
下面记录我的短信测试例子。
首先:新建一个类,代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Net; 6 using System.IO; 7 using System.Text; 8 namespace Ajax 9 { 10 /// <summary> 11 /// 短信发送后返回值 说 明 12 /// 1 发送成功 13 ///-1 没有该用户账户 14 ///-2 密钥不正确 [查看密钥] 15 ///-3 短信数量不足 16 ///-11 该用户被禁用 17 ///-14 短信内容出现非法字符 18 ///-4 手机号格式不正确 19 ///-41 手机号码为空 20 ///-42 短信内容为空 21 ///大于0 短信发送数量 22 /// </summary> 23 public class SendDuanXi 24 { 25 private string url = "http://utf8.sms.webchinese.cn/?"; //url 26 private string strUid = "Uid=xxxx";//账号 27 private string strKey = "&key=xxxx"; //秘钥 28 private string strMob = "xxxx";//要发送的手机号 29 private string strContent = "xxxx";//要发送的内容 30 31 public SendDuanXi(string strMob, string strContent) 32 { 33 this.strMob = strMob; 34 this.strContent = strContent; 35 } 36 37 //拼接url 38 public string GetUrl() 39 { 40 //http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容 41 return url = url + strUid + strKey + "&smsMob=" + strMob + "&smsText=" + strContent; 42 } 43 //调用时只需要把拼成的URL传给该函数即可。判断返回值即可 44 public string GetHtmlFromUrl(string url) 45 { 46 string strRet = null; 47 if (url == null || url.Trim().ToString() == "") 48 { 49 return strRet; 50 } 51 string targeturl = url.Trim().ToString(); 52 try 53 { 54 HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl); 55 hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; 56 hr.Method = "GET"; 57 hr.Timeout = 30 * 60 * 1000; 58 WebResponse hs = hr.GetResponse(); 59 Stream sr = hs.GetResponseStream(); 60 StreamReader ser = new StreamReader(sr, Encoding.Default); 61 strRet = ser.ReadToEnd(); 62 } 63 catch (Exception ex) 64 { 65 strRet = null; 66 } 67 return strRet; 68 } 69 } 70 }
最后,调用这个类,就可以实现发短信功能,代码如下:
1 SendDuanXi send = new SendDuanXi("xxxx","cccc");//xxxx是要发送的电话号码;cccc是发送的内容 2 string url = send.GetUrl(); 3 string Result = send.GetHtmlFromUrl(url); 4 5 Response.Write("<script>alert('"+Result+"');</script>");
结束
之前没接触过,觉得挺不可思议的,看了之后会发现,这些东西都是很成熟的东西了而且是很基础的东西。参照服务商提供的api就可以了。