网易云短信

    public class HttpClient2
    {
        //发起Http请求
        public static string HttpPost(string url, Stream data, IDictionary<object, string> headers = null)
        {
            System.Net.WebRequest request = HttpWebRequest.Create(url);
            request.Method = "POST";
            if (data != null)
                request.ContentLength = data.Length;
            //request.ContentType = "application/x-www-form-urlencoded;charset=utf-8";

            if (headers != null)
            {
                foreach (var v in headers)
                {
                    if (v.Key is HttpRequestHeader)
                        request.Headers[(HttpRequestHeader)v.Key] = v.Value;
                    else
                        request.Headers[v.Key.ToString()] = v.Value;
                }
            }
            HttpWebResponse response = null;
            try
            {
                // 得到响应
                response = (HttpWebResponse)request.GetResponse();
                // 显示状态
                Console.WriteLine(response.StatusDescription);
                // 获取包含服务器返回的内容的流
                Stream dataStream = response.GetResponseStream();
                // 使用StreamReader打开该流,以方便访问
                StreamReader reader = new StreamReader(dataStream);
                // 阅读的内容
                string responseFromServer = reader.ReadToEnd();
                //清理流和响应
                reader.Close();
                dataStream.Close();
                response.Close();
                return responseFromServer;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(response.StatusDescription);
                return "0";
            }
        }
    }
public class CheckSumBuilder
    {
        //发送短信验证码需要的类
        public static String getCheckSum(String appSecret, String nonce, String curTime)
        {
            byte[] data = Encoding.Default.GetBytes(appSecret + nonce + curTime);
            byte[] result;

            SHA1 sha = new SHA1CryptoServiceProvider();
            // 这是抽象类SHA1的一个实现
            result = sha.ComputeHash(data);

            return getFormattedText(result);
        }

        // 计算并获取md5值
        public static String getMD5(String requestBody)
        {
            if (requestBody == null)
                return null;

            // 创建MD5CryptoServiceProvider对象的新实例
            MD5 md5Hasher = MD5.Create();

            //将输入字符串转换为字节数组并计算散列
            byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(requestBody));

            // 创建一个新的Stringbuilder来收集字节并创建一个字符串
            StringBuilder sBuilder = new StringBuilder();

            //循环遍历散列数据的每个字节,并将每个字节格式化为十六进制字符串
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }

            // 返回十六进制字符串
            return getFormattedText(Encoding.Default.GetBytes(sBuilder.ToString()));
        }

        private static String getFormattedText(byte[] bytes)
        {
            char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',
            '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
            int len = bytes.Length;
            StringBuilder buf = new StringBuilder(len * 2);
            for (int j = 0; j < len; j++)
            {
                buf.Append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
                buf.Append(HEX_DIGITS[bytes[j] & 0x0f]);
            }
            return buf.ToString();
        }
    }
public static string phoneyanzheng(string chaxunzhi)
        {

            String url = "https://api.netease.im/sms/sendcode.action";


            url += "?templateid=3892478&mobile=" + chaxunzhi;//请输入正确的手机号

            //网易云信分配的账号,请替换你在管理后台应用下申请的Appkey
            String appKey = "*";
            //网易云信分配的密钥,请替换你在管理后台应用下申请的appSecret
            String appSecret = "*";
            //随机数(最大长度128个字符)
            String nonce = "12345";

            TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1);
            Int32 ticks = System.Convert.ToInt32(ts.TotalSeconds);
            //当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的秒数(String)
            String curTime = ticks.ToString();
            //SHA1(AppSecret + Nonce + CurTime),三个参数拼接的字符串,进行SHA1哈希计算,转化成16进制字符(String,小写)
            String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce, curTime);

            IDictionary<object, String> headers = new Dictionary<object, String>();
            headers["AppKey"] = appKey;
            headers["Nonce"] = nonce;
            headers["CurTime"] = curTime;
            headers["CheckSum"] = checkSum;
            headers["ContentType"] = "application/x-www-form-urlencoded;charset=utf-8";
            string Mess = HttpClient2.HttpPost(url, null, headers);
            var serializer = new JavaScriptSerializer();//这种方式则会很好的转化为 字典类型,如果JSON中不存在,则相应的值为 NULL
            var MessageInfo = serializer.Deserialize<Dictionary<string, object>>(Mess);
            if (MessageInfo["obj"] != null)
            {
                return "1";
            }
            else
            {
                return "0";

            }
        }
public static string phoneyanzheng2(string chaxunzhi,string code)
        {

            String url = "https://api.netease.im/sms/sendcode.action";


            url += "?mobile=" + chaxunzhi + "&code="+code;//请输入正确的手机号

            //网易云信分配的账号,请替换你在管理后台应用下申请的Appkey
            String appKey = "*";
            //网易云信分配的密钥,请替换你在管理后台应用下申请的appSecret
            String appSecret = "*";
            //随机数(最大长度128个字符)
            String nonce = "12345";

            TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1);
            Int32 ticks = System.Convert.ToInt32(ts.TotalSeconds);
            //当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的秒数(String)
            String curTime = ticks.ToString();
            //SHA1(AppSecret + Nonce + CurTime),三个参数拼接的字符串,进行SHA1哈希计算,转化成16进制字符(String,小写)
            String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce, curTime);

            IDictionary<object, String> headers = new Dictionary<object, String>();
            headers["AppKey"] = appKey;
            headers["Nonce"] = nonce;
            headers["CurTime"] = curTime;
            headers["CheckSum"] = checkSum;
            headers["ContentType"] = "application/x-www-form-urlencoded;charset=utf-8";
            string Mess = HttpClient2.HttpPost(url, null, headers);
            var serializer = new JavaScriptSerializer();//这种方式则会很好的转化为 字典类型,如果JSON中不存在,则相应的值为 NULL
            var MessageInfo = serializer.Deserialize<Dictionary<string, object>>(Mess);
            if (MessageInfo["obj"] != null)
            {

                return "1";
            }
            else
            {
                return "0";

            }
        }
原文地址:https://www.cnblogs.com/cwmizlp/p/9556183.html