小编典典

.NET 中的 WebClient 和 HTTPWebRequest 类有什么区别?

all

.NETWebClient中的类和类有什么区别?HttpWebRequest他们都做非常相似的事情。事实上,为什么不将它们合并到一个类中(方法/变量太多等可能是一个原因,但
.NET 中还有其他类违反了该规则)。

谢谢。


阅读 91

收藏
2022-07-31

共1个答案

小编典典

WebClient 是建立在 HttpWebRequest 之上的更高级别的抽象,用于简化最常见的任务。例如,如果您想从 HttpWebResponse
中获取内容,则必须从响应流中读取:

var http = (HttpWebRequest)WebRequest.Create("http://example.com");
var response = http.GetResponse();

var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
var content = sr.ReadToEnd();

使用 WebClient,您只需DownloadString

var client = new WebClient();
var content = client.DownloadString("http://example.com");

注意:using为简洁起见,我省略了两个示例中的陈述。您绝对应该注意正确处理您的 Web 请求对象。

一般来说,WebClient 适用于快速而肮脏的简单请求,而 HttpWebRequest 适用于您需要对整个请求进行更多控制时。

2022-07-31