HttpWebRequest, WebClient和HttpClient怎么在c#项目中使用

  介绍

HttpWebRequest, WebClient和HttpClient怎么在c#项目中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> HttpWebRequest:

命名空间:System.Net,这是。网创建者最初开发用于使用HTTP请求的标准类。使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如超时,饼干,头,协议。另一个好处是HttpWebRequest类不会阻塞UI线程。例如,当您从响应很慢的API服务器下载大文件时,您的应用程序的UI不会停止响应.HttpWebRequest通常和WebResponse一起使用,一个发送请求,一个获取数据.HttpWebRquest更为底层一些,能够对整个访问过程有个直观的认识,但同时也更加复杂一些。

,//发布方法   ,,,public  static  string  HttpPost (string  Url, string  postDataStr)   ,,,{   ,,,,,HttpWebRequest  request =, (HttpWebRequest) WebRequest.Create (Url);   ,,,,,request.Method =,“POST";   ,,,,,request.ContentType =,“应用程序/x-www-form-urlencoded";   ,,,,,Encoding  Encoding =, Encoding.UTF8;   ,,,,,byte [], postData =, encoding.GetBytes (postDataStr);   ,,,,,request.ContentLength =, postData.Length;   ,,,,,Stream  myRequestStream =, request.GetRequestStream ();   ,,,,,myRequestStream.Write (postData, 0, postData.Length);   ,,,,,myRequestStream.Close ();   ,,,,,HttpWebResponse  response =, (HttpWebResponse) request.GetResponse ();   ,,,,,Stream  myResponseStream =, response.GetResponseStream ();   ,,,,,StreamReader  myStreamReader =, new  StreamReader (myResponseStream,编码);   ,,,,,string  retString =, myStreamReader.ReadToEnd ();   ,,,,,myStreamReader.Close ();   ,,,,,myResponseStream.Close ();      ,,,,,return  retString;   ,,,}   ,,,//得到方法   ,,,public  static  string  HttpGet (string  Url, string  postDataStr)   ,,,{   ,,,,,HttpWebRequest  request =, (HttpWebRequest) WebRequest.Create(时间+ Url  (postDataStr ==,,,, ?,,,,:,“?“), +, postDataStr);   ,,,,,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;   ,,,}

<强> WebClient:

命名空间系统。净,WebClient是一种更高级别的抽象,是HttpWebRequest为了简化最常见任务而创建的,使用过程中你会发现他缺少基本的头,timeoust的设置,不过这些可以通过继承HttpWebRequest来实现。相对来说,WebClient比WebRequest更加简单,它相当于封装了请求和响应方法,不过需要说明的是,WebClient和WebRequest继承的是不同类,两者在继承上没有任何关系。使用WebClient可能比HttpWebRequest直接使用更慢(大约几毫秒),但却更为简单,减少了很多细节,代码量也比较少。

public  class  WebClientHelper   {才能   ,,,public  static  string  DownloadString (string  url)   ,,,{   ,,,,,WebClient  wc =, new  WebClient ();   ,,,,,//wc.BaseAddress =, url;,,//设置根目录   ,,,,,wc.Encoding =, Encoding.UTF8;,,//设置按照何种编码访问,如果不加此行,获取到的字符串中文将是乱码   ,,,,,string  str =, wc.DownloadString (url);   ,,,,,return  str;   ,,,}   ,,,public  static  string  DownloadStreamString (string  url)   ,,,{   ,,,,,WebClient  wc =, new  WebClient ();   ,,,,,wc.Headers.Add (“User-Agent",,“Mozilla/5.0, (Windows  NT  10.0;, Win64;, x64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/76.0.3809.132  Safari/537.36“);   ,,,,,Stream  objStream =, wc.OpenRead (url);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

HttpWebRequest, WebClient和HttpClient怎么在c#项目中使用