300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c# http put请求 通用http请求 post get put

c# http put请求 通用http请求 post get put

时间:2019-02-10 15:24:28

相关推荐

c# http put请求 通用http请求 post get put

/// <summary>/// 通用请求方法/// </summary>/// <param name="url"></param>/// <param name="datas"></param>/// <param name="method">POST GET PUT DELETE</param>/// <param name="contentType">"POST application/x-www-form-urlencoded; charset=UTF-8"</param>/// <param name="encoding"></param>/// <returns></returns>public static string HttpRequest(string url, string data, string method = "PUT", string contentType = "application/json", Encoding encoding = null){byte[] datas = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);//data可以直接传字节类型 byte[] data,然后这一段就可以去掉if (encoding == null)encoding = Encoding.UTF8;HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);request.Method = method;request.Timeout = 150000;request.AllowAutoRedirect = false;if (!string.IsNullOrEmpty(contentType)){request.ContentType = contentType;}if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)){ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);}Stream requestStream = null;string responseStr = null;try{if (datas != null){request.ContentLength = datas.Length;requestStream = request.GetRequestStream();requestStream.Write(datas, 0, datas.Length);requestStream.Close();}else{request.ContentLength = 0;}using (HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse()){Stream getStream = webResponse.GetResponseStream();byte[] outBytes = ReadFully(getStream);getStream.Close();responseStr = Encoding.UTF8.GetString(outBytes);}}catch (Exception){throw;}finally{request = null;requestStream = null;}return responseStr;}private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors){return true; //总是接受 }public static byte[] ReadFully(Stream stream){byte[] buffer = new byte[512];using (MemoryStream ms = new MemoryStream()){while (true){int read = stream.Read(buffer, 0, buffer.Length);if (read <= 0)return ms.ToArray();ms.Write(buffer, 0, read);}}}

POST 需要把 contentType 改为 application/x-www-form-urlencoded; charset=UTF-8

PUT 需要把 contentType 改为application/json

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。