网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

为Asp.net网站新增发送手机短信功能

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

本文旨在帮助那些为网站发送手机短信正在寻求解决方案还未最终找到解决方案的朋友提供参考。

    适合人群 须满足一下条件之一,如果以下3个条件您都不满足,为节约您宝贵的时间,请终止阅读本篇文章。

    条件如下:

         1.一条短信内容进行短信群发的目标手机数量不能太大,否则出现严重的短信延时。

         2.不想买短信猫之类的设备,同时又觉得部分国有电信单位提供的短信接口不好用,或者认为其服务不够好。

         3.担心网络上短信sp供应商信息不真实,毕竟大部分短信供应商不能通过当面交易。

   看到这里说明您对我的解决方案是感兴趣的,我这样解决的:

        找过几家国有企业短信sp供应商,效果比我想象的要差很多,于是直接在网络上找提供类似服务的短信供应商。发现有很多这样的民营sp短信供应商的服务都是通过网银或者支付宝进行购买。这又让我担心是骗钱的。说实在的挺苦恼的,甚至有朋友建议直接买个几百元的低端多普达,在windows mobile 内写一个自动发送短信的功能充当短信猫。后来苦苦寻觅中我发现了 悠逸企业短信平台(申明:无任何广告嫌疑!)可以购买一百元1000条手机短信而且注册后可以先试用10条短信。将10条试用完后,我用信用卡通过其网站购买了100元短信。心想如果被骗了,这样损失也不会很大。详细步骤如下:

       1.在其平台上注册一个属于自己的用户名。

       2.在我们的网站或者类库中加入这段方法 (注:此方法不是官方提供的,是我看完官方的API后用C#编写)

  1. public static bool SendMobileMsg(string msgContent, List<string> destListPhones) 
  2.    { 
  3.        try 
  4.        { 
  5.            bool result = false
  6.            string strPhones = string.Join(";", destListPhones.ToArray()); 
  7.            strPhones += ";"
  8.            var encoding = System.Text.Encoding.GetEncoding("GB2312"); 
  9.  
  10.            string postData = string.Format("uid=用户名&pwd=密码&mobile={0};&msg={1}&dtime=", strPhones, msgContent); 
  11.  
  12.            byte data = encoding.GetBytes(postData); 
  13.  
  14.            // 定义 WebRequest 
  15.             HttpWebRequest myRequest = 
  16.            (HttpWebRequest)WebRequest.Create("http://www.smsadmin.cn/smsmarketing/wwwroot/api/post_send/"); 
  17.  
  18.            myRequest.Method = "POST"
  19.            myRequest.ContentType = "application/x-www-form-urlencoded"
  20.            myRequest.ContentLength = data.Length; 
  21.  
  22.            Stream newStream = myRequest.GetRequestStream(); 
  23.  
  24.            //发送数据 
  25.             newStream.Write(data, 0, data.Length); 
  26.            newStream.Close(); 
  27.  
  28.            // 得到 Response 
  29.            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 
  30.            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default); 
  31.            string content = reader.ReadToEnd(); 
  32.  
  33.            if (content.Substring(0, 1) == "0"
  34.                result = true
  35.            else 
  36.            { 
  37.                if (content.Substring(0, 1) == "2"//余额不足 
  38.                { 
  39.                  //"手机短信余额不足"; 
  40.                  //TODO 
  41.                } 
  42.                else 
  43.                { 
  44.                  //短信发送失败的其他原因,请参看官方API 
  45.                } 
  46.                result = false
  47.            } 
  48.  
  49.            return result; 
  50.        } 
  51.        catch 
  52.        { 
  53.            return false
  54.        } 
  55.     
  56.    } 

很“干净”的调用,没有WebService也没有COM。
唯一要注意的就是编码用 GB2312 否则您收到短信的中文部分都是乱码,另外第10行的用户名和密码被硬编码了,应写在配置文件内。
最后,希望本篇能够帮助到您!

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师