.NET 中的 WebClient
和 HttpWebRequest
类有什么区别?他们都做非常相似的事情。事实上,为什么不将它们合并到一个类中(太多的方法/变量等可能是一个原因,但 .NET 中还有其他类违反了该规则)。
谢谢。
最佳答案
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 适用于需要对整个请求进行更多控制的情况。
关于c# - .NET 中的 WebClient 和 HTTPWebRequest 类之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4988286/