#region 调用短信接口
public ActionResult Mobile(string Tel)//调用接口
{
Random rm = new Random();
int i;
string str = string.Empty;
for (int p = ; p < ; p++)
{
i = Convert.ToInt32(rm.NextDouble() * );
str += i;
}
System.Web.HttpContext.Current.Session["Code"] = str;
//string stringSendResult = SendMobileCode(Tel, str);//方法一
string stringSendResult2 = Send(Tel, "验证码是:" + str);
return Json(true, JsonRequestBehavior.AllowGet);//短信发送成功
}
#endregion
#region 方法一(可能有些问题,走不通的先试用方法二)
public string SendMobileCode(string Mobile, string number)
{
if (string.IsNullOrEmpty(Mobile)) return "发送失败";
var str = "您的验证码为:" + number + ",5分钟有效,请尽快认证";
str = HttpUtility.UrlEncode(str, Encoding.GetEncoding("gb2312"));
string Chuo = DateTime.Now.ToString("yyyyMMddHHmmss");//时间戳
string MD5Chuo = "wdyzmwdyzm@456321" + Chuo;//账号 + 密码 + 时间戳 的MD5
string sign = Encrypt(MD5Chuo);
var url = "http://这里是地址/接口方法?参数1=send&参数2=111&时间戳=" + chuo + "&签名=" + sign + "&手机号=" + tel + "&发送内容=" + number + "&参数3=&参数4=";
var rst = (HttpWebRequest)WebRequest.Create(url);
var rsp = (HttpWebResponse)rst.GetResponse();
var reader = new StreamReader(rsp.GetResponseStream(), Encoding.GetEncoding("gb2312"));
reader.ReadToEnd();
reader.Close();
return number;
}
#endregion #region 方法二 #region
public string Send(string tel, string number)
{
string chuo = DateTime.Now.ToString("yyyyMMddHHmmss");//时间戳
string MD5s = "wdyzmwdyzm@456321" + chuo;//账号 + 密码 + 时间戳 的MD5
string sign = Encrypt(MD5s);
string posturl = "http://这里是地址/接口方法?参数1=send&参数2=111&时间戳=" + chuo + "&签名=" + sign + "&手机号=" + tel + "&发送内容=" + number + "&参数3=&参数4=";
return GetPage(posturl);//以post的形式发送出去
}
#endregion #region
public string GetPage(string posturl)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
//byte[] data = encoding.GetBytes(postData);
// 准备请求...
try
{
// 设置参数
request = WebRequest.Create(posturl) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";//post的形式
request.ContentType = "application/x-www-form-urlencoded";
//request.ContentLength = data.Length;
outstream = request.GetRequestStream();
//outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
catch (Exception ex)
{
string err = ex.Message;
//Response.Write(err);
//return string.Empty;
return err;
}
}
#endregion #endregion
ps:已简化

发送短信验证码及调用短信接口与C# 后台 post 发送的更多相关文章

  1. java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载

    短信验证码跟自己在Servlet画的验证码不一样,我们不用管短信验证码是怎么产生的,我们只需要关注如何调用短信验证码,在短信验证码里面添加 自己需要的随机数或者其他的内容. 现在直接上流程 第一步找一 ...

  2. spring boot:用redis+lua限制短信验证码的发送频率(spring boot 2.3.2)

    一,为什么要限制短信验证码的发送频率? 1,短信验证码每条短信都有成本制约, 肯定不能被刷接口的乱发 而且接口被刷会影响到用户的体验, 影响服务端的正常访问, 所以既使有图形验证码等的保护, 我们仍然 ...

  3. java实现注册的短信验证码

    最近在做只能净化器的后台用户管理系统,需要使用手机号进行注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下. 我们使用的是榛子云短信平台, 官网地址:http://smsow.zhe ...

  4. Web项目中手机注册短信验证码实现的全流程及代码

    最近在做只能净化器的后台用户管理系统,需要使用手机号进行注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下. 我们使用的是榛子云短信平台, 官网地址:http://smsow.zhe ...

  5. Android开发之短信验证码示例

    在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务.免费提供从天气查询.空气质量.地图坐标到金融 ...

  6. vue_drf之实现短信验证码

    一.需求 1,需求 我们在做网站开发时,登录页面很多情况下是可以用手机号接收短信验证码,然后实现登录的,那我们今天就来做一做这一功能. 伪代码: 进入登录页面,点击短信登录 输入手机号码,点击获取验证 ...

  7. thinkphp结合云之讯做短信验证码

    thinkphp结合云之讯做短信验证码先去云之讯注册账号 网址http://www.ucpaas.com/ 注册云之讯平台账号,即可免费获得10元测试费用测试够用啦 解压附件到 ThinkPHP\Li ...

  8. SpringSceurity(5)---短信验证码登陆功能

    SpringSceurity(5)---短信验证码登陆功能 有关SpringSceurity系列之前有写文章 1.SpringSecurity(1)---认证+授权代码实现 2.SpringSecur ...

  9. 云平台短信验证码通知短信java/php/.net开发实现

    一.本文目的 大部分平台都有一个接入发送短信验证码.通知短信的需求.虽然市场上大部分平台的接口都只是一个非常普通的HTTP-GET请求,但终归有需要学习和借鉴使用的朋友. 本文的初衷是主要提供学习便利 ...

随机推荐

  1. Spring boot 2.1.0 -- swagger2 整合

    依赖版本信息 Spring boot 2.1.0.RELEASE swagger2 2.7.0 1. mvn 配置  pom.xml 包引入 <!--swagger2依赖--> <d ...

  2. ZOJ - 3216:Compositions (DP&矩阵乘法&快速幂)

    We consider problems concerning the number of ways in which a number can be written as a sum. If the ...

  3. 51Nod:1134 最长递增子序列

    动态规划 修改隐藏话题 1134 最长递增子序列  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出长度为N的数组,找出这个数组的最长递增子序列.(递 ...

  4. oracle 查某一列有重复值的记录

    -- 查找重复记录select names,num from test where rowid != (select max(rowid)                  from test b   ...

  5. j2ee使用struts实现用户的登陆及注冊

    用户名: 密码: <%-- 使用struts标签 --%> <%-- --%>

  6. spring cloud 知识点

    优秀的介绍资料: 资料 地址 spring cloud 中文网 https://springcloud.cc/ spring cloud 介绍 https://www.jianshu.com/p/74 ...

  7. Java中 @Override 的作用

    @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 可以当注释用,方便阅读: 编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如,你如 ...

  8. DllPlugin、DllReferencePlugin 可以提取的第三方库列表

    DllPlugin.DllReferencePlugin 可以提取的第三方库列表: 'vue/dist/vue.esm.js', // 'vue/dist/vue.common.js' for web ...

  9. Queque 方法对比和分类

    添加类:方法 public boolean add(E e)      增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常 bo ...

  10. Centos7安装killall,fuser, killall,pstree和pstree.x11

    centos7精简安装后,使用中发现没有killall命令. 经查找,可以通过以下命令解决: yum -y install psmisc 简单介绍一下 psmisc : Psmisc软件包包含三个帮助 ...