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