webrequest、httpwebrequest、webclient、HttpClient 四个类的区别
一、在 framework 开发环境下:
webrequest、httpwebreques 都是基于Windows Api 进行包装,
webclient 是基于webrequest 进行包装;(经测试不支持实例化静态对象后进行并行请求)
HttpClient 是基于httpwebreques 进行包装;(支持度高,并行)
在 .net 4.5 以上环境支持异步;
二、在 .net Core 2.1 以下环境下:
webrequest、httpwebreques 都是基于 socket 进行包装;
webclient 及 HttpClient 都是基于 webrequest、httpwebreques 进行包装;
三、在 .net Core 2.1 或以上环境下:
httpwebreques 是基于 socket 进行包装;
HttpClient 继承 httpwebreques 进行包装扩展;(推荐使用)
webclient 继承 HttpClient 进行包装扩展;(主要作用为兼容原 windows api,可以乎略)
以上是对几个常用请求进行个人记录,如有不正确的还望指教!
webrequest、httpwebrequest、webclient、HttpClient 四个类的区别的更多相关文章
- webrequest HttpWebRequest webclient/HttpClient
		
webrequest(abstract类,不可直接用) <--- (继承)---- HttpWebRequest(更好的控制请求) <--- (继承)---- webclient (简单快 ...
 - WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择
		
NETCore提供了三种不同类型用于生产的REST API: HttpWebRequest;WebClient;HttpClient,开源社区创建了另一个名为RestSharp的库.如此多的http库 ...
 - .Net5下WebRequest、WebClient、HttpClient是否还存在使用争议?
		
WebRequest.WebClient.HttpClient 是C#中常用的三个Http请求的类,时不时也会有人发表对这三个类使用场景的总结,本人是HttpClient 一把梭,也没太关注它们的内部 ...
 - C#,WebRequest类、HttpWebRequest类与HttpRequest类的区别
		
C#,WebRequest类和HttpWebRequest类的区别? httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRe ...
 - [Effective Java]第四章 类和接口
		
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
 - android6.0SDK 删除HttpClient的相关类的解决方法
		
本文转载自博客:http://blog.csdn.net/yangqingqo/article/details/48214865 android6.0SDK中删除HttpClient的相关类的解决方法 ...
 - delphi RTTI 四 获取类属性列表
		
delphi RTTI 四 获取类属性列表 GetPropList(btn1.ClassInfo, tkAny, PropList) PropCount := GetTypeData(btn1.Cla ...
 - android开发之 Wifi的四个类
		
android开发之 Wifi的四个类 在Android中对Wifi操作,android本身提供了一些实用的包,在android.net.wifi包以下.简介一下: 大致能够分为四个基本的类ScanR ...
 - Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法
		
面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...
 
随机推荐
- Ubuntu 下使用 mutt 和 msmtp 发送 Gmail 邮件
			
参考: http://www.cnblogs.com/refrag/archive/2012/11/28/2793533.html http://www.habadog. ...
 - 【转】WINSOCKET客户端编程以及JMETER外部调用
			
1 public class SocketClient { 2 OutputStream clientout = null; 3 InputStream clienIn = null; 4 byte[ ...
 - 根文件系统的构建与分析(四)之瑞士军刀busybox生成系统基本命令
			
根文件系统的构建与分析(四) 转载请注明 http://blog.csdn.net/jianchi88 Author:Lotte 邮箱:baihaowen08@126.com ls /bin, ...
 - Oracle 复杂查询(1)
			
一.复杂查询 1. 列出至少有一个员工的所有部门编号.名称,并统计出这些部门的平均工资.最低工资.最高工资. 1.确定所需要的数据表: emp表:可以查询出员工的数量: dept表:部门名称: emp ...
 - Cocos2D中的内部函数
			
virtual bool isVisible(); // 是否可见 virtual void setVisible(bool visible); // 设置是否可见 boo ...
 - Apache rewrite 出现 400 Bad Request 的解决方法
			
<VirtualHost *:80 *:81> ServerAdmin deng5765@163.com DocumentRoot /active/www/ ...
 - Halcon学习之两幅图像处理
			
sub_image ( ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : ) 对两幅图像做减法 g' := (g1 - g2) * Mu ...
 - ELK(Elasticsearch/Logstash/Kibana)安装时常见错误总结
			
问题一: [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: Java.lang ...
 - Pagination分页
			
基本语法 下面展示Paginator的基本使用 >>> from django.core.paginator import Paginator >>> object ...
 - 移植RT2870无线网卡驱动到s3c2416
			
公司项目要用到usb无线网卡,芯片是ralink的RT2870.以下是将其驱动移植到s3c2416的步骤. 1.下载驱动源码,雷凌官网的下载地址是: http://www.ralinktech.com ...