/// <summary> /// HttpGetAsync /// </summary> /// <param name="getUrl"></param> /// <param name="contentType"></param> /// <returns></returns> public static async Task <string> HttpGetAsync(string getUrl, HttpWebRequestContentType contentType) { Stream myResponseStream = null; StreamReader myStreamReader = null; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getUrl); request.Method = "GET"; request.ContentType = EnumHelper.GetExtendValue(contentType); try { var response = await request.GetResponseAsync(); myResponseStream = response.GetResponseStream(); myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); return(retString); } catch (Exception ex) { throw ex; } finally { myStreamReader.Close(); myResponseStream.Close(); } }
/// <summary> /// Post 处理状态码不是200返回的数据 /// </summary> /// <param name="postUrl"></param> /// <param name="paramData"></param> /// <param name="contentType"></param> /// <returns></returns> public static string HttpPostNot200(string postUrl, string paramData, HttpWebRequestContentType contentType) { string ret = string.Empty; HttpWebResponse response = null; StreamReader sr = null; Stream newStream = null; try { byte[] byteArray = Encoding.UTF8.GetBytes(paramData); //转化成二进制流 HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); webReq.Method = "POST"; webReq.ContentType = EnumHelper.GetExtendValue(contentType); //ApplicationJSON类型 webReq.Timeout = 15000; //响应时间 webReq.ContentLength = byteArray.Length; newStream = webReq.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length);//写入参数 newStream.Close(); response = (HttpWebResponse)webReq.GetResponse(); sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); ret = sr.ReadToEnd(); } catch (WebException e) { using (WebResponse response_ = e.Response) { HttpWebResponse httpResponse = (HttpWebResponse)response_; //Console.WriteLine(e); if (response_ == null) { return(e.ToString()); } using (Stream data = response_.GetResponseStream()) using (var reader = new StreamReader(data)) { string text = reader.ReadToEnd(); // Console.WriteLine(text); return(text); } } } finally { if (newStream != null) { newStream.Close(); } if (response != null) { response.Close(); } if (sr != null) { sr.Close(); } } return(ret); }
/// <summary> /// put /// </summary> /// <param name="postUrl"></param> /// <param name="paramData"></param> /// <param name="contentType"></param> /// <returns></returns> public static string HttpDelete(string postUrl, string paramData, HttpWebRequestContentType contentType, string token = "", string domain = "") { string ret = string.Empty; HttpWebResponse response = null; StreamReader sr = null; Stream newStream = null; try { byte[] byteArray = Encoding.UTF8.GetBytes(paramData); //转化成二进制流 HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); webReq.Method = "DELETE"; webReq.ContentType = EnumHelper.GetExtendValue(contentType); //ApplicationJSON类型 webReq.Accept = EnumHelper.GetExtendValue(contentType); //ApplicationJSON类型 webReq.Timeout = 5000; //响应时间 webReq.ContentLength = byteArray.Length; if (token != "" && domain != "") { webReq.CookieContainer = new CookieContainer(); webReq.CookieContainer.Add(new Cookie("token", token, "/", domain)); } newStream = webReq.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length);//写入参数 newStream.Close(); response = (HttpWebResponse)webReq.GetResponse(); sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); ret = sr.ReadToEnd(); } catch (System.Exception ex) { var strt = ex.Message; //throw ex; } finally { if (newStream != null) { newStream.Close(); } if (response != null) { response.Close(); } if (sr != null) { sr.Close(); } } return(ret); }
/// <summary> /// Delete /// </summary> /// <param name="getUrl"></param> /// <param name="contentType"></param> /// <returns></returns> public static string HttpDelete(string getUrl, HttpWebRequestContentType contentType) { Stream myResponseStream = null; StreamReader myStreamReader = null; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getUrl); request.Method = "DELETE"; request.ContentType = EnumHelper.GetExtendValue(contentType); if (cookies != null) { request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(cookies); } try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); myResponseStream = response.GetResponseStream(); myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); return(retString); } catch (Exception ex) { //throw ex;远程服务器返回错误: (404) 未找到。 return(ex.Message); //return ""; } finally { if (myStreamReader != null) { myStreamReader.Close(); myResponseStream.Close(); } } }
/// <summary> /// Get /// </summary> /// <param name="getUrl"></param> /// <param name="contentType"></param> /// <returns></returns> public static string Http401Get(string getUrl, HttpWebRequestContentType contentType) { Stream myResponseStream = null; StreamReader myStreamReader = null; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getUrl); request.Method = "GET"; request.ContentType = EnumHelper.GetExtendValue(contentType); try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); myResponseStream = response.GetResponseStream(); myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); return(retString); } catch (WebException ex) { //throw ex;远程服务器返回错误: (404) 未找到。 var response = (HttpWebResponse)ex.Response; myResponseStream = response.GetResponseStream(); myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); return(retString); //return ""; } finally { if (myStreamReader != null) { myStreamReader.Close(); myResponseStream.Close(); } } }
/// <summary> /// 异步带返回值Post /// </summary> /// <param name="url"></param> /// <param name="postData"></param> /// <param name=""></param> /// <param name="contentType"></param> /// <returns></returns> public static async Task <string> HttpPostUsingAsync(string url, string postData, HttpWebRequestContentType contentType) { byte[] byteArray = Encoding.UTF8.GetBytes(postData); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = EnumHelper.GetExtendValue(contentType); request.ContentLength = byteArray.Length; request.Timeout = 3000; using (Stream myRequestStream = await request.GetRequestStreamAsync()) { myRequestStream.Write(byteArray, 0, byteArray.Length); WebResponse response = request.GetResponse(); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")); return(myStreamReader.ReadToEnd()); } }
/// <summary> /// 异步带返回值Post /// </summary> /// <param name="postUrl"></param> /// <param name="paramData"></param> /// <param name="contentType"></param> /// <returns></returns> public static async Task <string> HttpPostAsync(string postUrl, string paramData, HttpWebRequestContentType contentType) { string ret = string.Empty; HttpWebResponse response = null; StreamReader sr = null; Stream newStream = null; try { byte[] byteArray = Encoding.UTF8.GetBytes(paramData); //转化 HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); webReq.Method = "POST"; webReq.ContentType = EnumHelper.GetExtendValue(contentType); webReq.Timeout = 4000; webReq.ContentLength = byteArray.Length; newStream = webReq.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length);//写入参数 newStream.Close(); Stream tempStream = await webReq.GetRequestStreamAsync(); sr = new StreamReader(tempStream, Encoding.UTF8); ret = sr.ReadToEnd(); } catch (System.Exception ex) { throw ex; } finally { if (newStream != null) { newStream.Close(); } if (response != null) { response.Close(); } if (sr != null) { sr.Close(); } } return(ret); }