【问题标题】:Distributing System.Net.Http分发 System.Net.Http
【发布时间】:2016-07-22 05:39:24
【问题描述】:

所以我最近开始使用 C# 调用 REST API。根据我的研究,最好的方法似乎是使用 System.Net.Http 的一部分 HttpClient。

我了解到要获取此库,我必须从 NuGet 下载并安装它,因为默认情况下它不是 .NET 4.5 的一部分。

我猜这意味着我必须为 HttpClient 获取所有需要的程序集(看起来有 4 个)并手动将它们分发给任何将使用 HttpClient 的项目。

我不得不使用看起来像是来自 Microsoft 的标准 .NET 程序集来做这件事,这似乎很奇怪。

【问题讨论】:

  • 库有依赖并没有什么不寻常的。
  • “近年来,团队一直在使用 NuGet 作为 .NET Framework 发布工具,以更快地发布可用的功能和修复”blogs.msdn.microsoft.com/dotnet/p/nugetpackages我的看法是他们正在为任何并非每个应用程序都真正需要的软件包。这很容易适用于任何独立的桌面应用程序。
  • @WilliamXifaras 是的,我意识到这一点。对于那些看起来像是标准 .NET 安装的一部分的库,我只是觉得很奇怪。

标签: c# nuget httpclient


【解决方案1】:

HttpClient 附带 .NET 4.5 及更高版本(请参阅版本信息here)。它还可以在 NuGet 上用于 older platforms.NET Core(这是最新版本,并且还与大多数 .NET 实现兼容,因为它符合 .NET Standard 1.1)。

如果您使用的是 .NET 4.5,只需添加对它的引用 - 您不需要包(引用 > 添加 > 程序集 > 框架 > System.Net.Http)。

【讨论】:

  • 在我读到 HttpClient 将 System.Net.Http 添加到我的 .NET 4.5 项目后,我尝试了第一件事,但它不存在。如果是这样,我什至不会费心使用 NuGet 来添加它。 HttpClient 甚至可以与 4.5 之前的 .NET 版本一起使用吗? HttpClient 使用任务。方法(GET、PUT、POST、DELETE)都返回任务并且是“可等待的”。 .NET 4.5 不是等待和异步功能吗?
  • 不,任务是在 .NET 4 中添加的。await 功能随 C# 5 和 .NET 4.5 一起提供,但也可以使用 NuGet 包 Microsoft.Bcl.Async 与 .NET 4 一起使用。
  • 而且System.Net.Http 肯定存在...也许您的目标框架版本错误?
  • 是的,在 .NET 4 中添加了任务,在 .NET 4.5 中添加了等待/异步。据我所知,HttpClient 中的 GET、PUT、POST 和 DELETE 方法都是“可等待的”,这意味着它需要 .NET 4.5。我三重检查了目标框架。它绝对是 .NET 4.5。
猜你喜欢
  • 2018-07-29
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
相关资源
最近更新 更多