public class SmsServiceManager
{
public static string Send(string PhoneNumber, out string sendNo)
{
sendNo = GetRandomNum(); // 得到发送的验证码
// 当然 你也可以在这里或下面把这个SendNo插入数据库,就不用反回这个sendNO了
string tmp = "";
if (PhoneNumber != "")
{
// http://XXXXXXX/sms/interSms.aspx?smsUid=leizi&smsPwd=leizi123456&smsNumber={0}&smsContent={1}&smsWantTime="
// 因WebConfig中不&要转义成&所以配置如下,把 & 改成 & 就得到如下地址
// WebConfig中的配置为 value="http://XXXXXXX/sms/interSms.aspx?smsUid=leizi&smsPwd=leizi123456&smsNumber={0}&smsContent={1}&smsWantTime="
string urlData = ConfigurationManager.AppSettings["SmsUrl"].ToString();
string SMSContent = ConfigurationManager.AppSettings["SMSContent"].ToString(); // 发送的内容 "欢迎注册XXX,您的验证码是:{0}"这种
SMSContent = string.Format(SMSContent, sendNo);
string url = "";
string urldata = "";
if (!string.IsNullOrEmpty(urlData))
{
string[] arrUrlData = urlData.Split('?');
if (arrUrlData != null && arrUrlData.Length == )
{
url = arrUrlData[]; // 服务地址 http://XXXXXXX/sms/interSms.aspx
urldata = arrUrlData[]; // 参数 smsUid=leizi&smsPwd=leizi123456&smsNumber={0}&smsContent={1}&smsWantTime=
}
else
return "url配置错误!";
}
else
return "url配置错误!"; // 这个引用using system.web 对上面的{0},{1}格式化
urldata = string.Format(urldata, PhoneNumber,SMSContent);
byte[] data = Encoding.UTF8.GetBytes(urldata);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);// http://XXXXXXX/sms/interSms.aspx
myRequest.Method = "POST";
myRequest.Timeout = ;
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, , data.Length);
newStream.Close();
//接收返回信息:
HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse();
StreamReader sreader = new StreamReader(response.GetResponseStream(), Encoding.Default);
tmp = sreader.ReadToEnd(); // 读取反回信息
}
return tmp;
} public static string GetRandomNum()
{
string[] arr = { "", "", "", "", "", "", "", "", "", "" };
string result = "";
Random r = new Random();
for (int i = ; i < ; i++)
{
result += arr[r.Next(, )];
}
return result;
}

asp.net发送短信的更多相关文章

  1. asp发送短信验证码 pst方式

    <script language="jscript" runat="server">  Array.prototype.get = function ...

  2. asp.net mvc短信接口调用——阿里大于API开发心得

    互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短 ...

  3. .NET 微信开放平台接口(接收短信、发送短信)

    .NET 微信开放平台接口(接收短信.发送短信) 前两天做个项目用到了微信api功能.项目完成后经过整理封装如下微信操作类. 以下功能的实现需要开发者已有微信的公众平台账号,并且开发模式已开启.接口配 ...

  4. asp.net mvc 短信验证码

    把发短信功能写成一个类包,需要引用: SmsUtillity.cs: using System; using System.Collections.Generic; using System.Linq ...

  5. PHP发送短信功能

    发送短信的功能主要在于获得短信接口后,在函数中模仿用户行为,例如浏览器跳转输出短信接口的链接. 需要运用的函数为 curl_init(); curl_setopt(); curl_exec(); cu ...

  6. WPF MVVM下做发送短信小按钮

    最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...

  7. NetCore 阿里大于发送短信

    使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...

  8. android 中调用接口发送短信

    android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...

  9. Android 学习第13课,android 实现发送短信的功能

    1. 界面布局 界面代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

随机推荐

  1. 基于 Golang 的 xls 读取类库:xls

    Golang 编写的 xls 读取类库,能够实现 xls 表格的读取功能 func (w *WorkBook) ReadAllCells() (res [][]string) { for _, she ...

  2. [SharePoint 2010] 如何在小組網站內頁面上撥放影片或是音效檔

    在SharePoint 2010中, 我們可以像是Youtube一樣在網頁上撥放影片或是音效檔案. 影片或音效是採取串流的方式來撥放. 也就是說我們不需要把整個檔案都下載回來才開始撥放. 點選沒多久我 ...

  3. nvm-windows 安装后,node 命令报错

    下载地址: https://github.com/coreybutler/nvm-windows/releases 我是点下面这个直接安装的: 配置文件,我都是习惯在软件目录下建个 files 文件夹 ...

  4. Educational Codeforces Round 25 E. Minimal Labels&&hdu1258

    这两道题都需要用到拓扑排序,所以先介绍一下什么叫做拓扑排序. 这里说一下我是怎么理解的,拓扑排序实在DAG中进行的,根据图中的有向边的方向决定大小关系,具体可以下面的题目中理解其含义 Educatio ...

  5. C#中字符数组,字节数组和string之间的转化

    转自:http://blog.csdn.net/wangxiaoqin00007/article/details/17675419 NDC(NetworkDiskClient)的界面和后台程序之间用S ...

  6. Spring Data CrudRepository增删改查方法(八)

    CrudRepository   的主要方法 long count(); boolean exists(Integer arg0); <S extends StudentPO> S sav ...

  7. Jumpserver使用

    堡垒机介绍 在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动,以便集中报警.及时处理及审计定责. 我们 ...

  8. 在Win10上,Android Studio检测不到设备的解决方案

    下载ADB驱动程序安装器 运行ADBDriverInstaller.exe,可以看到设备状态不正常,点击Install 可能会弹出这样的对话框,点击Got it, Restart Now,按照提示完成 ...

  9. Python(并发编程进程)

    并发编程 二.多进程 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识. Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊.普通的函 ...

  10. 22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题

    相信很多同学在从eclipse 转 AS 都会遇到这个问题,因为方便所以共用了一个sdk 目录,但是AS 会主动更新sdk,然而手贱的跟新了一夜,再打开eclipse的时候瞬间呆滞了,这一夜发生什么了 ...