如何将 WebClient 与 .Net Core 一起使用?

Posted

技术标签:

【中文标题】如何将 WebClient 与 .Net Core 一起使用?【英文标题】:How to use WebClient with .NetCore? 【发布时间】:2015-05-14 00:07:57 【问题描述】:

有没有办法在 .NET Core 应用程序中使用 WebClient? 如果我构建应用程序,我会收到以下错误:

Severity    Code    Description Project File    Line
Error   CS0246  The type or namespace name 'WebClient' could not be found (are you missing a using directive or an assembly reference?)

我认为WebClient 不是 .NET Core 的一部分,但有其他选择吗?

【问题讨论】:

我在 corefx 存储库的任何地方都看不到 WebClientHttpClient 可能是替代方案。 我在 project.json 中添加了 "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" 我可以实例化一个新的 HttpClient。它甚至适用于 .NetCore。也许这是处理这个问题的唯一目的。 System.Net.Webclient not working 'WebClient' could not be found的可能重复 【参考方案1】:

从 .Net Standard 2.0 开始,WebClient 现在可用于该标准的任何实现,包括 .Net Core。但是,堆栈溢出问题“Need help deciding between HttpClient and WebClient”对于为什么应该使用HttpClient 有一些相当不错的答案。

提到的缺点之一是HttpClient 中没有内置的进度报告。但是,因为它使用流,所以可以自己编写。 “How to implement progress reporting for Portable HttpClient”的答案提供了一个报告响应流进度的示例。

如果您针对的是该标准的早期版本,则需要使用 HttpClient,因为在 .Net Standard 2.0 之前,WebClient 不可用。

【讨论】:

1.2.0版本应该建立在System.Net.Http之上github.com/dotnet/corefx/issues/11794【参考方案2】:

WebClient 现在在 .Net Standard 2.0 中可用 https://docs.microsoft.com/en-gb/dotnet/api/system.net.webclient?view=netstandard-2.0

【讨论】:

以上是关于如何将 WebClient 与 .Net Core 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .NET 6 中用 HttpClient 替换过时的 WebClient

将文件从 url 下载到 .Net Core 中的本地设备

如何将 Spring WebClient 与 Jetty 一起使用,而不是 Netty?

理解ASP.NET Core

将 CookieContainer 与 WebClient 类一起使用

如何指定用于 WebClient 类的 SSL 协议