1. 首先找到第三方发短信接口文档。

2.根据接口文档自己写个接口,调用他们发短信url , 可以先写个小demo.。

我这用的是 胜券短信 。

        /// <summary>/// 短信发送/// </summary>/// <param name="sms_phone">短信发送对象</param>/// <param name="sms_text">短信发送内容</param>/// <returns></returns>public static msgSendInfo SendSMS(string sms_phone, string sms_text){StringBuilder sms = new StringBuilder();//(模板发送)的只需要对sms_text、sms_phone进行base64加密if (sms_template == "1"){//加密手机号   用了base64加密后,要把特殊字符串替换(文档中没有详细写,记得看下人家的案例)sms_phone = GetToStr(EncryptionHelper.EncodeBase64(Encoding.UTF8, sms_phone));sms_text = GetToStr(EncryptionHelper.EncodeBase64(Encoding.UTF8, sms_text));}else{sms_text = GetToStr(EncryptionHelper.EncodeBase64(Encoding.UTF8, sms_text));}sms.AppendFormat("app_key={0}", app_key);// app_version为2表示需要加签名if (app_version == version){//需要加签名sms.AppendFormat("&sms_sign", sms_sign);}//这些都是参数,看你们怎么去定义,可以放在webconfig中sms.AppendFormat("&app_version={0}", app_version);sms.AppendFormat("&sms_phone={0}", sms_phone);sms.AppendFormat("&sms_text={0}", sms_text);sms.AppendFormat("&sms_sub_account_id={0}", sms_sub_account_id);sms.AppendFormat("&sms_priority={0}", sms_priority);sms.AppendFormat("&sms_flag={0}", flag);sms.AppendFormat("&sms_template={0}", sms_template);sms.AppendFormat("&sms_timersend_time={0}", sms_timersend_time);sms.AppendFormat("&sms_isreplay={0}", sms_isreplay);sms.AppendFormat("&sms_isrepeat={0}", sms_isrepeat);//应用签名(产生方式:将所有参数升序排序,然后将参数与内容相连,在前后加app_secret,将整个内容采用md5的方式加密)MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();byte[] app_sign = md5Hasher.ComputeHash(Encoding.Default.GetBytes(app_secret + sms.ToString() + app_secret));//byte[] app_sign = MD5(sms.ToString() + app_secret);var sb = new StringBuilder();foreach (var ch in app_sign){sb.Append(string.Format("{0:X2}", ch));}sms.AppendFormat("&app_sign={0}", sb.ToString());string resp = SendMsgByHttp(url, sms.ToString(), Encoding.UTF8);msgSendInfo sendInfo = JsonConvert.DeserializeObject<msgSendInfo>(resp);return sendInfo;}
  public static class restMgs{public static string GetToStr(string sStr){return sStr.Replace("%", " %25").Replace("+", "%2B").Replace("/", "%2F").Replace("?", "%3F").Replace("#", "%23").Replace("&", "%26");}public static string StrToHex(string mStr) //返回处理后的十六进制字符串{return BitConverter.ToString(ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");}public static string HexToStr(string mHex) // 返回十六进制代表的字符串{mHex = mHex.Replace(" ", "");if (mHex.Length <= 0) return "";byte[] vBytes = new byte[mHex.Length / 2];for (int i = 0; i < mHex.Length; i += 2)if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))vBytes[i / 2] = 0;return ASCIIEncoding.Default.GetString(vBytes);}public static string PushToWeb(string weburl, string data, Encoding encode){try{byte[] byteArray = encode.GetBytes(data);HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(weburl));webRequest.Method = "POST";webRequest.ContentType = "application/x-www-form-urlencoded";webRequest.ContentLength = byteArray.Length;Stream newStream = webRequest.GetRequestStream();newStream.Write(byteArray, 0, byteArray.Length);newStream.Close();//接收返回信息:HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();StreamReader aspx = new StreamReader(response.GetResponseStream(), encode);string msg = aspx.ReadToEnd();aspx.Close();response.Close();return msg;}catch (Exception ex){throw ex;}}/// <summary>/// Base64编码/// </summary>/// <param name="thisString"></param>/// <returns></returns>public static string ToBase64(string thisString){if (thisString == "")return string.Empty;return Convert.ToBase64String(Encoding.UTF8.GetBytes(thisString));}///   <summary>   ///   将指定字符串进行Base64编码。   ///   </summary>   ///   <param   name="codeType">GB2312</param>   ///   <param   name="code">具体html字符串</param>   ///   <returns></returns>   public static string EncodeBase64(string codeType, string code){string encode = "";byte[] bytes = Encoding.GetEncoding(codeType).GetBytes(code);encode = Convert.ToBase64String(bytes);return encode;}/// <summary>/// Base64加密,采用utf8编码方式加密/// </summary>/// <param name="source">待加密的明文</param>/// <returns>加密后的字符串</returns>public static string Base64Encode(string source){return Base64Encode(Encoding.UTF8, source);}/// <summary>/// Base64加密/// </summary>/// <param name="encodeType">加密采用的编码方式</param>/// <param name="source">待加密的明文</param>/// <returns></returns>public static string Base64Encode(Encoding encodeType, string source){string encode = string.Empty;byte[] bytes = encodeType.GetBytes(source);try{encode = Convert.ToBase64String(bytes);}catch{encode = source;}return encode;}/// <summary>/// Base64解密/// </summary>/// <param name="encodeType">解密采用的编码方式,注意和加密时采用的方式一致</param>/// <param name="result">待解密的密文</param>/// <returns>解密后的字符串</returns>public static string Base64Decode(Encoding encodeType, string result){string decode = string.Empty;byte[] bytes = Convert.FromBase64String(result);try{decode = encodeType.GetString(bytes);}catch{decode = result;}return decode;}}
    /// <summary>/// 短信发送返回的对象/// </summary>[Serializable]public class msgSendInfo{/// <summary>/// 返回true或者flase/// </summary>public bool success { get; set; }/// <summary>/// 发送结果编码号/// </summary>public int code { get; set; }/// <summary>/// 信息记录id/// </summary>public int messagelog_id { get; set; }/// <summary>/// 发送信息描述/// </summary>public string msg { get; set; }/// <summary>/// /// </summary>public int task_id { get; set; }}

这是发短信的流程,要是大家有什么好的思路可以告诉我。

1.要是对不同的内容进行群发,是如何?能不能把相同的参数进行封装。进行一次性对不同的手机号和内容发。

2.如何批量修改不相同的数据?

欢迎大家踊跃评论。

.net 发短信案例相关推荐

  1. 安卓day25快速入门 目录结构 清单 DDMS adb 危险权限 发短信 点击事件 安卓版本...

    一.排坑 AndroidStudio非法字符: '\ufeff' 将文件格式改为以UTF-8无BOM格式编码 Sublime Text 保存时 CodeFormatter file is scratc ...

  2. 使用Android Studio写一个发短信的小案例

    废话不多说,直接贴图 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayoutan ...

  3. Python的模块千奇百怪,居然有自动发短信的模块?

    今天跟大家分享的主题是利用python库twilio来免费发送短信. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的 ...

  4. 手把手教你如何在安卓平台上实现打电话发短信的功能

    首发地址 http://www.eoeandroid.com/thread-228079-1-1.html 1 案例目的 本案例通过一个简单通讯工具来巩固android的activity.Linear ...

  5. python 使用twilio进行发短信

    文章目录 1.说明: 2.开始注册账号: 1.官网:https://www.twilio.com/ 2.寻找python的使用案例demo 注意一点,我收到短信的手机号和我申请成功的手机号不是同一个, ...

  6. 教你怎么用Python,每天自动给女友免费发短信

    今天的教程就是教大家怎么发送免费短信给女朋友. 发送短信接口,我知道的常见的有两个平台,一个是 twilio,可以免费发短信 500 条,可发任意信息,一个是腾讯云,可以免费发短信 100 条,需要申 ...

  7. 免费发短信软件有黑幕

    免费发短信软件有黑幕 [案例导读] 把真相说出来,曾令我为难,因为我之前是在SP工作,即无线服务提供商,说白了就是 经常给大家的手机发一些乱七八糟的广告信息之类的商家.其中的黑幕大家未必了解-- [案 ...

  8. 阿里大鱼进行发短信业务---使用详细步骤-Java操作

    文章目录 前言 一.开通短信服务 二.快速学习 三.签名管理 1. 何为签名 2. 添加签名 四.模板管理 1. 何为模板 2. 添加模板 五.Java中使用阿里大鱼 1. 开发文档 2. 用到的依赖 ...

  9. 技术贴:如何跟刚认识的女孩发短信

    这篇文章挺有技术含量,虽然讲的是男女交往,但是其实还是人与人之间交往与处理关系. 对话,人与人之间最普通,但往往也是最有技巧的的交流方式.慢慢地说,迅速地思考,果断地决定去做. 编辑也来按一下:刚上大 ...

最新文章

  1. 让静态知识动起来:从知识图谱到事理图谱
  2. Python 结巴分词(1)分词
  3. Unity 游戏开发技巧集锦之创建自发光材质
  4. 如何网络推广教大家怎样通过提高用户粘性来助力排名提升?
  5. 安全技术大系iOS取证分析
  6. 读《可复制的领导力》
  7. Java--对象内存布局
  8. vue 实现 router store 文件自动加载
  9. 关系代数操作应用、关系元组运算应用
  10. sql server 2005 使用Log Explorer查看和恢复数据
  11. java 参数类型转换_java – 如何从通配符类型转换为参数化类型?
  12. zoj 3747 dp递推
  13. poj 2195(KM求最小权匹配)
  14. java list 超出范围_java.sql.SQLException参数索引超出范围(1参数个数,即0)
  15. 2018-10-09 星期二
  16. 由矢量电子海图构建海底 TINDEM方法研究
  17. JavaBean对象转Map对象
  18. Word批量打印软件/工具
  19. OpenCV-Python教程:图像金字塔
  20. 中国半导体仍然弱小 产业生态体系亟需完善

热门文章

  1. 「GitLab篇」如何用Git平台账号登录建木CI
  2. 微信发单机器人_微信多客服系统SDK通信接口
  3. 第一次社招笔试题回顾(全基础题)
  4. Python爬虫51job职位
  5. AD20的最全安装步骤
  6. Mac 如何开启实现DOH保护隐私?
  7. 行是知之始,知是行之成
  8. linux sli 提高效率,两大优点!NVIDIA混合SLI功能完全解析
  9. Ensight 基本操作
  10. MATLAB imagesc中将nan、inf或者特定值设为白色(或透明色)