HttpWebRequest和WebClient的区别

HttpWebRequest和WebClient的区别(From Linzheng):

1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Create();
2,其Method指定了请求类型,这里用的GET,还有POST;也可以指定ConentType;
3,其请求的Uri必须是绝对地址;
4,其请求是异步回调方式的,从BeginGetResponse开始,并通过AsyncCallback指定回调方法;

5,WebClient 方式使用基于事件的异步编程模型,在HTTP响应返回时引发的WebClient回调是在UI线程中调用的,因此可用于更新UI元素的属性,例如把 HTTP响应中的数据绑定到UI的指定控件上进行显示。HttpWebRequest是基于后台进程运行的,回调不是UI线程,所以不能直接对UI进行操作,通常使用Dispatcher.BeginInvoke()跟界面进行通讯。

 完美世界 http://www.23cat.com/Contents_51864.html 
  戮仙 http://www.23cat.com/Book_51960.html 

时间: 2024-10-29 10:46:19

HttpWebRequest和WebClient的区别的相关文章

WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择

原文:WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择 NETCore提供了三种不同类型用于生产的REST API: HttpWebRequest;WebClient;HttpClient,开源社区创建了另一个名为RestSharp的库.如此多的http库,该怎样选择呢? HttpWebRequest 这是.NET创建者最初开发用于使用HTTP请求的标准类.使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如

Linux中用HttpWebRequest或WebClient访问远程https路径

要想在Linux中用HttpWebRequest或WebClient访问远程https路径,需要作如下处理: 1,更新linux根证书(只需一次,在安装mono或安装jexus独立版后执行) sudo mozroots --import --ask-remove (独立版是:sudo /usr/jexus/mozroots --import --ask-remove) 2,在web程序中,在运行https请求之前的某个地方,比如Global.asax的Application_Start方法中添加

C# HttpWebRequest和 webclient 的POST方法

WebClient:1.post字符串 public string SendField_wc(string URL,string CookieData, string postData) { WebClient myWebClient = new WebClient(); myWebClient.Headers.Add("Cookie", CookieData); //添加文章 myWebClient.Headers.Add("Content-Type", &quo

C#中 HttpWebRequest和 webclient 的POST方法

WebClient: 1.post字符串 public string SendField_wc(string URL,string CookieData, string postData) { WebClient myWebClient = new WebClient(); myWebClient.Headers.Add("Cookie", CookieData); //添加文章 myWebClient.Headers.Add("Content-Type", &qu

【转】C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据

http://blog.csdn.net/kingcruel/article/details/44036871 版权声明:本文为博主原创文章,未经博主允许不得转载. [csharp] view plain copy ====================================================================================================================================== /// <su

httpWebRequest获取流和WebClient的文件抓取

昨天写一个抓取,遇到了一个坑,就是在获取网络流的时候,人为的使用了stream.Length来获取流的长度,获取的时候会抛出错误,查了查文档,原因是某些流是无法获取到数据的长度的,所以不能直接得到.如果是常和stream打交道就能避免这个问题.其实直接使用do-while来获取就行了,代码如下: int i=0; do { byte[] buffer = new byte[1024]; i = stream.Read(buffer, 0, 1024); fs.Write(buffer, 0, i

C#多线程环境下调用 HttpWebRequest 并发连接限制

.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows 7 下默认是2,在服务器操作系统上默认为10. 如果不修改这个并发连接限制,那么客户端同时可以建立的 http 连接数就只有2个或10个.对于一些诸如浏览器或网络蜘蛛的应用,2个或10个并发数量实在太少,大大影响应用的性能.之所以有这个并发连接限制,是因为 http 1.0 和 http 1.1 标准规定并发连接数最大为2. 不

多线程环境下调用 HttpWebRequest 并发连接限制

.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows  7 下默认是2,在服务器操作系统上默认为10. 如果不修改这个并发连接限制,那么客户端同时可以建立的 http 连接数就只有2个或10个.对于一些诸如浏览器或网络蜘蛛的应用,2个或10个并发数量实在太少,大大影响应用的性能.之所以有这个并发连接限制,是因为 http 1.0 和 http 1.1 标准规定并发连接数最大为2.

使用C#的HttpWebRequest模拟登陆访问人人网(转)

无论使用任何语言做模拟登陆或者抓取访问页面,无外乎以下思路:第一 启用一个web访问会话方法或者实例化一个web访问类,如.net中的HttpWebRequest:第二 模拟POST或者GET方式提交的数据:第三 模拟请求的头:第四 提交请求并获得响应,及对响应做我们所需要的处理.这里我们以人人网的登录为例,将涉及到POST以及GET两种请求方式.在之前的文章<免费网页抓包工具,火狐插件FireBug的抓包使用教程>中我们知道,登陆人人网的时候,一共做了一个POST请求以及两个GET请求,如下