如何将 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 存储库的任何地方都看不到WebClient
,HttpClient
可能是替代方案。
我在 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
如何将 Spring WebClient 与 Jetty 一起使用,而不是 Netty?