找不到ASP.NET 5.0中的HttpClient?

使用VS2015和asp.net 5,当我尝试使用System.Net.HttpClient实例编译我的网站时,它告诉我:

找不到类型或命名空间名称’HttpClient’(您是否缺少using指令或程序集引用?)

将鼠标hover在有问题的代码上,我看到:

"WebApplication1.ASP.NET 5.0 - Available" "WebApplication1.ASP.NET Core 5.0 - Not Available" 

我的project.json文件中列出了2个框架:

 "frameworks": { "aspnet50": { }, "aspnetcore50": { } }, 

我假设其中一个是由于没有组装而负责,但我真的不知道如何解决它或如何工作。

如何让网站与HttpClient一起运行而不是抛出错误? 违规方法发布如下:

 private async Task GetStringFromUri() { using (var httpClient = new HttpClient()) { result = await httpClient.GetStringAsync( new Uri("http://baconipsum.com/api/?type=meat-and-filler")); viewModel= result; return viewModel; } } 

终于搞定了一切。 @yuval让我在正确的轨道上找到了关于添加依赖项的答案,并指出该类存在于github上。 进一步的搜索让我发现该类似乎还没有被包含在预览版中,我不得不将这个nuget repo添加到我的项目中: https ://www.myget.org/gallery/aspnetvnext

在那个回购中是每晚构建的asp.net vnext nuget包,其中包含我想要的类。 将以下行添加到我的主依赖项部分和两个框架依赖项部分,这对我有用:“Microsoft.Net.Http.Client”:“1.0.0.0-rc1-10049”

 "dependencies": { [...], "Microsoft.Net.Http.Client": "1.0.0.0-rc1-10049" }, "frameworks": { "aspnet50": { "dependencies": { "Microsoft.Net.Http.Client": "1.0.0-rc1-10049" } }, "aspnetcore50": { "dependencies": { "Microsoft.Net.Http.Client": "1.0.0-rc1-10049" } } } 

我今天遇到了同样的问题,解决方案在2016年变得更加简单了。

不再需要添加新的Nuget存储库。

添加System.Net.Http (当前版本4.0.1-beta-23516)时,如果您的目标是clr以及核心框架版本,仍会遇到相同的错误,因此需要将依赖项复制到dnxcore框架中依赖列表,用于编译代码。

之前:

 "frameworks": { "dnx451": { "dependencies": { "System.Net.Http": "4.0.1-beta-23516" } }, "dnxcore50": { } } 

后:

 "frameworks": { "dnx451": { "dependencies": { "System.Net.Http": "4.0.1-beta-23516" } }, "dnxcore50": { "dependencies": { "System.Net.Http": "4.0.1-beta-23516" } } } 

您需要向nuget包管理器( https://www.myget.org/F/aspnetvnext )添加新源,然后将依赖项添加到project.json文件中。 对于dnx451dnxcore50

 { "frameworks": { "dnx451": { "frameworkAssemblies": { "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" } }, "dnxcore50": { "frameworkAssemblies": { "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" } } } 

它作为ASP.Net xNext包的一部分实现,因为它们在github上声明 :

完全托管的基于套接字的HttpMessageHandler实现。

该项目是ASP.NET vNext的一部分。 您可以在Home repo中找到ASP.NET vNext的示例,文档和入门说明。

完整的演练可以在这里找到

我今天在RC1找不到:

对于那些从那里发现这个问题的人来说, HttpClient现在位于System.Net.Http命名空间中。

只需将其添加到project.json

 "dependencies": { ... "Microsoft.Net.Http": "2.2.7-beta" }, 

或者最新版本。

这个post中有一个缺失的链接给我….你需要添加https://www.myget.org/gallery/aspnetvnext NuGet源,但实际的NuGet提要URL是’ https:// www .myget.org / F / aspnetvnext / ‘。 一旦你拥有了它作为你的金块来源,其余部分就会变得生动起来。

此外,在撰写本文时(2015年6月17日),版本为“Microsoft.Net.Http.Client”:“1.0.0-beta3-10053”。

您还需要使用6月7日Matt DeKreys编辑的更新“框架”部分(dnx451和dnxcore50)