Http的Get;Post请求封装(包含头文件账号和密码)【已测试通过】

        #region  含账号密码的Http请求封装
        /// <summary>
        /// Http的Post请求【含账号密码】
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static T GetHttpEntityPostByNamePwd<T>(string Url, string postDataStr)
        {
            string retStr = GetHttpPostByNamePwd(Url, postDataStr);
            T entity = GetJsonXml.GetEntityByJson<T>(retStr);
            return entity;
        }

        /// <summary>
        /// Http的Get请求【含账号密码】
        /// </summary>
        /// <param name="url"></param>
        /// <param name="postData"></param>
        /// <returns></returns>
        public static string GetHttpGetByNamePwd(string url)
        {
            string resultStr = string.Empty;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                request.ContentType = "application/json;charset=utf-8";
                //账户
                string name = "";
                //密码
                string pwd = "";
                string bh = "Authorization:Basic";
                string header = name + ":" + pwd;
                //UTF8标准转码加密
                string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(header));
                request.Headers.Add("Authorization", "Basic " + base64Header);
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                resultStr = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
                return resultStr;
            }
            catch (WebException ex)
            {
                var errorSr = new StreamReader(ex.Response.GetResponseStream());
                resultStr = errorSr.ReadToEnd();
            }
            return resultStr;
        }


        /// <summary>
        /// Http的Post请求【含账号密码】
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static string GetHttpPostByNamePwd(string Url, string postDataStr)
        {
            string resultStr = string.Empty;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.ContentType = "application/json;charset=utf-8";
                //账户
                string name = "";
                //密码
                string pwd = "";
                string bh = "Authorization:Basic";
                string header = name + ":" + pwd;
                //UTF8标准转码加密
                string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(header));
                request.Headers.Add("Authorization", "Basic " + base64Header);
                byte[] data = Encoding.GetEncoding("utf-8").GetBytes(postDataStr);
                request.ContentLength = data.Length;
                Stream myRequestStream = request.GetRequestStream();
                myRequestStream.Write(data, 0, data.Length);
                myRequestStream.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                resultStr = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
            }
            catch (WebException ex)
            {
                var errorSr = new StreamReader(ex.Response.GetResponseStream());
                resultStr = errorSr.ReadToEnd();
            }
            return resultStr;
        }

        #endregion 含账号密码的Http请求封装

        #region 不含账号密码普通http请求

        /// <summary>
        /// Http的Post请求
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static string GetHttpPost(string Url, string postDataStr, string contentType = null)
        {
            string resultStr = string.Empty;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                if (string.IsNullOrWhiteSpace(contentType))
                {
                    request.ContentType = "application/x-www-form-urlencoded";
                }
                else
                {
                    request.ContentType = contentType;
                }


                byte[] data = Encoding.GetEncoding("utf-8").GetBytes(postDataStr);

                request.ContentLength = data.Length;

                Stream myRequestStream = request.GetRequestStream();

                myRequestStream.Write(data, 0, data.Length);
                myRequestStream.Close();

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

                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));//
                resultStr = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
            }
            catch (WebException ex)
            {
                var errorSr = new StreamReader(ex.Response.GetResponseStream());
                resultStr = errorSr.ReadToEnd();
            }

            return resultStr;
        }

        /// <summary>
        /// Http的Get请求
        /// </summary>
        /// <param name="url"></param>
        /// <param name="postData"></param>
        /// <returns></returns>
        public static string GetHttpGet(string url, string postData)
        {

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + (postData == "" ? "" : "?") + postData);
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            return retString;
        }

        #endregion 

 

posted @ 2021-12-13 16:30  博客YS  阅读(712)  评论(0编辑  收藏  举报