C# HttpTools

218 阅读1分钟

Https Post Get

/// <summary>

    /// https post工具类

    /// @author lishuai

    /// @date 20220524 10:15

    /// </summary>

    public class HttpTools

    {

        public static string GetUrl(string url)

        {

            HttpWebRequest request = null;

            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))

            {

                request = WebRequest.Create(url) as HttpWebRequest;

                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

                request.ProtocolVersion = HttpVersion.Version11;

                // 这里设置了协议类型。

                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | (SecurityProtocolType)768 | (SecurityProtocolType)3072;

                //(SecurityProtocolType)3072;// SecurityProtocolType.Tls1.2;       

                request.KeepAlive = false;

                ServicePointManager.CheckCertificateRevocationList = true;

                ServicePointManager.DefaultConnectionLimit = 100;

                ServicePointManager.Expect100Continue = false;

            }

            else

            {

                request = (HttpWebRequest)WebRequest.Create(url);

            }


            request.Method = "GET";    //使用get方式发送数据

            request.ContentType = "application/x-www-form-urlencoded";

            //request.ContentType = "application/json";

            request.Referer = null;

            request.AllowAutoRedirect = true;

            request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

            request.Accept = "*/*";

            //获取网页响应结果

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream stream = response.GetResponseStream();

            //client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

            string result = string.Empty;

            using (StreamReader sr = new StreamReader(stream))

            {

                result = sr.ReadToEnd();

            }


            return result;

        }


        public static string PostUrl(string url, string postData)

        {

            HttpWebRequest request = null;

            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))

            {

                request = WebRequest.Create(url) as HttpWebRequest;

                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

                request.ProtocolVersion = HttpVersion.Version11;

                // 这里设置了协议类型。

                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | (SecurityProtocolType)768 | (SecurityProtocolType)3072;

                //(SecurityProtocolType)3072;// SecurityProtocolType.Tls1.2;       

                request.KeepAlive = false;

                ServicePointManager.CheckCertificateRevocationList = true;

                ServicePointManager.DefaultConnectionLimit = 100;

                ServicePointManager.Expect100Continue = false;

            }

            else

            {

                request = (HttpWebRequest)WebRequest.Create(url);

            }



            request.Method = "POST";    //使用get方式发送数据

            //request.ContentType = "application/x-www-form-urlencoded";

            request.ContentType = "application/json";

            request.Referer = null;

            request.AllowAutoRedirect = true;

            request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

            request.Accept = "*/*";

            byte[] data = Encoding.UTF8.GetBytes(postData);

            Stream newStream = request.GetRequestStream();

            newStream.Write(data, 0, data.Length);

            newStream.Close();


            //获取网页响应结果

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream stream = response.GetResponseStream();

            //client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

            string result = string.Empty;

            using (StreamReader sr = new StreamReader(stream))

            {

                result = sr.ReadToEnd();

            }

            return result;

        }


        private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

        {

            return true; //老是接受  

        }

    }