c# - .NET 中的 WebClient 和 HTTPWebRequest 类之间有什么区别?

标签 c# .net httpwebrequest webclient

.NET 中的 WebClientHttpWebRequest 类有什么区别?他们都做非常相似的事情。事实上,为什么不将它们合并到一个类中(太多的方法/变量等可能是一个原因,但 .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/

相关文章:

c# - 在 Entity Framework 中映射选择存储过程

c# - 用于从关键字中检索相似词的 API?

c# - 使用 C# 替换所有不是 HTML 实体的 &

c# - BinaryFormatter 是否应用任何压缩?

c# - HTML 文件输入的样式文本框

c# - EF 自定义结果集映射

c# - 如何跨越多个程序集的 C# 命名空间?

c# - HttpWebRequest.BeginGetResponse

.net - 为什么默认情况下不启用 PreAuthenticate?

PHP 页面加载似乎在请求自身并误解了结果