C#实现短信接口调用示例

csharp

浏览数:132

2019-1-8

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Net.Security;  
using System.Security.Cryptography.X509Certificates;  
using System.Net;  
using System.IO;  
using System.IO.Compression;  
using System.Text.RegularExpressions; 
using System.Security.Cryptography;
using System.Web;
public class Test
{
        private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";  
 
        private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)  
        {  
            return true; //总是接受     
        }  
     static void Main(string[] args)  
        {  
            DateTime dt = DateTime.Now; 
            string mttime = dt.ToString("yyyyMMddHHmmss");
            string pwd1 = "*************"+mttime;
      string pwd = GetMD5(pwd1)
            string content = "【阅信】验证码888888,打死也不能告诉别人哦。";
            string url = "http://183.203.28.226:9000/HttpSmsMt";  
            Encoding encoding = Encoding.GetEncoding("utf-8");  
            IDictionary<string, string> parameters = new Dictionary<string, string>();  
            parameters.Add("name", "****");  
            parameters.Add("pwd", pwd);  
            parameters.Add("content",content);
            parameters.Add("phone","13381272353");
            parameters.Add("subid","");
            parameters.Add("mttime", mttime);  
            HttpWebResponse response = CreatePostHttpResponse(url,parameters,encoding);  
            //打印返回值  
            Stream stream = response.GetResponseStream();   //获取响应的字符串流  
            StreamReader sr = new StreamReader(stream); //创建一个stream读取流  
            string html = sr.ReadToEnd();   //从头读到尾,放到字符串html  
            Console.WriteLine(html);   
        }
            public static string GetMD5(string myString)  
        {
            MD5 md5 = new MD5CryptoServiceProvider();
           // byte[] fromData = System.Web.HttpUtility.UrlEncode.GetBytes(myString);
            byte[] fromData = Encoding.Default.GetBytes(myString);
            byte[] targetData = md5.ComputeHash(fromData);
            string byte2String = null;
            for(int i=0;i<targetData.Length;i++)  
            {
                byte2String+= targetData[i].ToString("x");
            }
            return byte2String;
        } 
            public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters,Encoding charset)  
        {  
            HttpWebRequest request = null;  
            //HTTPSQ请求  
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);  
            request = WebRequest.Create(url) as HttpWebRequest;  
            request.ProtocolVersion = HttpVersion.Version10;  
            request.Method = "POST";  
            request.ContentType = "application/x-www-form-urlencoded";  
            request.UserAgent = DefaultUserAgent;  
            //如果需要POST数据     
            if (!(parameters == null || parameters.Count == 0))  
            {  
                StringBuilder buffer = new StringBuilder();  
                int i = 0;  
                foreach (string key in parameters.Keys)  
                {  
                    if (i > 0)  
                    {  
                        buffer.AppendFormat("&{0}={1}", key, parameters[key]);  
                    }  
                    else 
                    {  
                        buffer.AppendFormat("{0}={1}", key, parameters[key]);  
                    }  
                    i++;  
                }  
                byte[] data = charset.GetBytes(buffer.ToString());  
                using (Stream stream = request.GetRequestStream())  
                {  
                    stream.Write(data, 0, data.Length);  
                }  
            }  
            return request.GetResponse() as HttpWebResponse;  
        } 
}