发送短信验证码及调用短信接口与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:已简化

 

posted @ 2018-04-17 12:56  紫晶城  阅读(494)  评论(0编辑  收藏  举报