当我们在C#中调用RestApi通常有三种方式
HttpWebRequest | 是一种相对底层的处理 Http request/response 的方式 | 已过时 |
WebClient | 提供了对 HttpWebRequest 的高层封装,来简化使用者的调用 | 已过时 |
HttpClient | 是一种新的处理 Http request/response 工具包,具有更高的性能 | 推荐使用 |
为什么推荐使用HttpClient
WebRequest
.NET Framework 中第一个用来处理 Http 请求的类,非常灵活。可以用来存取 headers, cookies, protocols 和 timeouts 等等。但灵活的同时也导致使用难度加大,各个开发都有自己的写法。
HttpWebRequest http = (HttpWebRequest)WebRequest.Create("http://localhost:8081/api/default");
WebResponse response = http.GetResponse();
Stream memoryStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(memoryStream);
string data = streamReader.ReadToEnd();
WebClient
基于HttpWebRequest的封装,提供了使用便利性,但舍弃了部分性能。在只做简单api调用时优势很大。不太适用bgy各系统之间调用的千奇百怪鉴权。
using (var webClient = new WebClient()) {
var data = webClient.DownloadString("http://localhost:8081/api/default");
}
HttpClient
HttpClient 作为后来之物,它吸取了 HttpWebRequest 的灵活性及 WebClient 的便捷性,所以说
标签:return,C#,apiLog,headers,关于,var,new,message,HttpClient From: https://www.cnblogs.com/xionghui23/p/17648097.html