zoukankan      html  css  js  c++  java
  • c# Httphelper帮助类 简约版

     public  class HttpHelper
        {
            public static string httpGet(string url)
            {
                HttpWebRequest request = null;
                request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "GET";
    
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
    
                string retString = myStreamReader.ReadToEnd();
    
                myStreamReader.Close();
                myStreamReader = null;
                myResponseStream.Close();
                myResponseStream.Dispose();
                myResponseStream = null;
                request.Abort();
                request = null;
    
                return retString;
            }
    
            private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
            {
                return true; //总是接受     
            }
    
            /// <summary>
            /// Post提交
            /// </summary>
            /// <param name="Url"></param>
            /// <param name="postDataStr"></param>
            /// <returns></returns>
            public static string httpPost(string Url, string postDataStr)
            {
                return httpPost(Url, postDataStr, "txt", "", "utf-8");
            }
            public static string httpPost(string Url)
            {
                return httpPost(Url, "", "txt", "", "utf-8");
            }
    
            public static string httpPost1(string Url)
            {
                return httpPost(Url, "", "html", "", "utf-8");
            }
    
            public static string httpPost2(string Url, string postDataStr)
            {
                return httpPost(Url, postDataStr, "html", "", "utf-8");
            }
    
            public static string httpPost3(string Url, string postDataStr)
            {
                return httpPost(Url, postDataStr, "textjson", "", "utf-8");
            }
    
            public static string httpPostByJson(string Url, string postDataStr)
            {
                return httpPost(Url, postDataStr, "json", "", "utf-8");
            }
    
    
    
            public static string httpPost(string Url, string postDataStr, string postType, string cacert, string chartset)  //post读取
            {
                //发送
                System.GC.Collect();//系统回收垃圾
                if (Url.Contains("https://"))
                {
                    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                }
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Timeout = 1000 * 20;
                request.Method = "POST";
               
                //以下加速请求
                //request.KeepAlive = false;//请求完关闭
                //request.ServicePoint.Expect100Continue = false;
                //request.ServicePoint.UseNagleAlgorithm = false;
                //request.ServicePoint.ConnectionLimit = 65500;
                //request.AllowWriteStreamBuffering = false; 
                request.Proxy = null;
                request.AllowAutoRedirect = true;
                //以上加速请求
                if (postType == "txt")
                {
                    request.ContentType = "application/x-www-form-urlencoded";
                }
                else if (postType == "json")
                {
                    request.ContentType = "application/json";
                }
                else if(postType == "html")
                {
                    request.ContentType = "text/html";
                }
                else if (postType == "textjson")
                {
                    request.ContentType = "text/json";
                }
    
                if (cacert != "")
                {
                    X509Certificate cert = new System.Security.Cryptography.X509Certificates.X509Certificate(cacert, "");
                    request.ImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;//设定验证回调(总是同意)
                    request.ClientCertificates.Add(cert);//把证书添加进http请求中
                }
    
                try
                {
                    byte[] payload = System.Text.Encoding.UTF8.GetBytes(postDataStr);
                    request.ContentLength = payload.Length;
                    request.ServicePoint.Expect100Continue = false;
                    request.GetRequestStream().Write(payload, 0, payload.Length);
    
                    //响应接收
                    //HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    HttpWebResponse response;
                    try
                    {
                        response = (HttpWebResponse)request.GetResponse();
                    }
                    catch (WebException ex)
                    {
                        response = (HttpWebResponse)ex.Response;
                    }
                    Stream myResponseStream = response.GetResponseStream();
                    StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding(chartset));
                    string retString = myStreamReader.ReadToEnd();
                    response.Close();
                    myStreamReader.Close();
                    myResponseStream.Close();
                    myResponseStream.Dispose();
                    response = null;
                    myStreamReader = null;
                    myResponseStream = null;
                    request.Abort();
                    request = null;
    
                    return retString;
                }
                catch (Exception ex)
                {
                    request.Abort();
                    request = null;
                    Console.WriteLine(ex.Message);
                    //Message ms = new Message("网络超时!");
                    return "";
                }
            }
    
            /// <summary>
            /// Post方式请求接口
            /// </summary>
            /// <param name="action">请求的方法名</param>
            /// <param name="dic">请求发送的数据</param>
            /// <returns></returns>
            public static string HttpPost(string action, Dictionary<string, string> dic)
            {
                //此处换为自己的请求url
                string url = action;
                string result = string.Empty;
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
    
                #region 添加Post 参数
                StringBuilder builder = new StringBuilder();
                int i = 0;
                foreach (var item in dic)
                {
                    if (i > 0)
                        builder.Append("&");
                    builder.AppendFormat("{0}={1}", item.Key, item.Value);
                    i++;
                }
                byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
                req.ContentLength = data.Length;
                using (Stream reqStream = req.GetRequestStream())
                {
                    reqStream.Write(data, 0, data.Length);
                    reqStream.Close();
                }
                #endregion
    
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                Stream stream = resp.GetResponseStream();
                //获取响应内容
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    result = reader.ReadToEnd();
                }
                return result;
            }
    
            public static string PostDataNew(string url, string infor)
            {
                string result = "";
                try
                {
                    HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                    request.Method = "POST";
                    request.KeepAlive = true;
                    request.AllowAutoRedirect = false;
                    request.ContentType = "application/x-www-form-urlencoded";
                    byte[] postdatabtyes = Encoding.UTF8.GetBytes(infor);
                    request.ContentLength = postdatabtyes.Length;
                    request.ServicePoint.Expect100Continue = false;//这个在Post的时候,一定要加上,如果服务器返回错误,他还会继续再去请求,不会使用之前的错误数据,做返回数据
                    Stream requeststream = request.GetRequestStream();
                    requeststream.Write(postdatabtyes, 0, postdatabtyes.Length);
                    requeststream.Close();
                    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                    {
                        StreamReader sr2 = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                        string respsr = sr2.ReadToEnd();
                        result = respsr;
                    }
                }
                catch (Exception ex)
                {
                    result = ex.Message;
                }
                return result;
            }
    
            public static string RequestData(string POSTURL, string PostData)
            {
                //发送请求的数据
                WebRequest myHttpWebRequest = WebRequest.Create(POSTURL);
                myHttpWebRequest.Method = "POST";
                UTF8Encoding encoding = new UTF8Encoding();
                byte[] byte1 = encoding.GetBytes(PostData);
                myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                myHttpWebRequest.ContentLength = byte1.Length;
              
                Stream newStream = myHttpWebRequest.GetRequestStream();
                newStream.Write(byte1, 0, byte1.Length);
                newStream.Close();
    
                //发送成功后接收返回的XML信息
                HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse();
                string lcHtml = string.Empty;
                Encoding enc = Encoding.GetEncoding("UTF-8");
                Stream stream = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(stream, enc);
                lcHtml = streamReader.ReadToEnd();
                return lcHtml;
            }
    
        }
  • 相关阅读:
    算法70----只有两个键的键盘【动态规划】
    Shell
    Shell
    Shell
    Shell
    Shell
    Tools
    Jenkins
    Java
    Product
  • 原文地址:https://www.cnblogs.com/wenghan/p/13753648.html
Copyright © 2011-2022 走看看