C# HTTPS调用


        //https请求规避验证
        private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true; //总是接受
        }

        //Post请求
        private string POST(string url, string ContentType, string Accept, String message, params string[] args)
        {
            string result = string.Empty;

            //HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            HttpWebRequest request = null;
            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                request = WebRequest.Create(url) as HttpWebRequest;
                request.ProtocolVersion = HttpVersion.Version10;
            }
            else
            {
                request = WebRequest.Create(url) as HttpWebRequest;
            }
            request.Method = "POST";
            request.ContentType = ContentType;
            request.Accept = Accept;
            for (var i = 0; i < args.Length; i++)
            {
                request.Headers[args[i].Substring(0, args[i].IndexOf(","))] = args[i].Substring(args[i].IndexOf(",") + 1);
            }
            Stream stream = request.GetRequestStream();
            // 发送数据 不带 BOM xml  
            UTF8Encoding utf8 = new UTF8Encoding(false);
            StreamWriter myStreamWriter = new StreamWriter(stream, utf8);
            myStreamWriter.Write(message);
            myStreamWriter.Close();

            HttpWebResponse rep = (HttpWebResponse)request.GetResponse();
            Stream receiveStream = rep.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            StreamReader readStream = new StreamReader(receiveStream, encode);
            Char[] read = new Char[256];
            int count = readStream.Read(read, 0, 256);
            StringBuilder strBuilder = new StringBuilder("");
            while (count > 0)
            {
                String readstr = new String(read, 0, count);
                strBuilder.Append(readstr);
                count = readStream.Read(read, 0, 256);
            }
            rep.Close();
            readStream.Close();
            result = strBuilder.ToString();


            return result;
        }

        private string GET(string url, string ContentType, string Accept, params string[] args)
        {
            string result = string.Empty;
            // 准备请求
            HttpWebRequest request = null;
            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                request = WebRequest.Create(url) as HttpWebRequest;
                request.ProtocolVersion = HttpVersion.Version10;
            }
            else
            {
                request = WebRequest.Create(url) as HttpWebRequest;
            }
            request.Method = "GET";
            request.ContentType = ContentType;
            request.Accept = Accept;
            for (var i = 0; i < args.Length; i++) 
            {
                request.Headers[args[i].Substring(0, args[i].IndexOf(","))] = args[i].Substring(args[i].IndexOf(",") + 1);
            }
            //request.Headers["键"] = "值";
            HttpWebResponse httpWebResponse = (HttpWebResponse)request.GetResponse();

            Stream stream = httpWebResponse.GetResponseStream();
            StreamReader readStream = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
            result = readStream.ReadToEnd();
            readStream.Close();
            stream.Close();

            return result;
        }