• 发送短信验证码及调用短信接口与C# 后台 post 发送


    #region 调用短信接口
            public ActionResult Mobile(string Tel)//调用接口
            {
                Random rm = new Random();
                int i;
                string str = string.Empty;
                for (int p = 0; p < 6; p++)
                {
                    i = Convert.ToInt32(rm.NextDouble() * 10);
                    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:已简化
  • 相关阅读:
    使用dataInput:DescriptionViewer对输入的数据进行校验
    Nunit2.6.2调试.net4类库
    使用WCF RIA服务支持ASP.NET验证
    偶遇 Lc.exe已退出代码为1
    android程序连接后端web service时,提示:Permission denied
    设置XP系统的自动登录
    DomainDataSource的自动刷新
    安装CentOS时,显示 NET:Registered protocol family 2
    清除SqlServer2008的日志
    http://www.cnblogs.com/KnightsWarrior/archive/2010/08/27/1809739.html(博客主)
  • 原文地址:https://www.cnblogs.com/SeNaiTes/p/8863515.html
Copyright © 2020-2023  润新知