如何在 ASP.NET 核心应用程序中使用 HttpClient
How to use HttpClient in ASP.NET Core app
我正在尝试使用 ASP.NET 核心(又名 vNext)构建应用程序。我需要调用第三方 REST-API。传统上,我会使用 HttpClient。但是,我似乎无法让它工作。在我的 project.json 文件中我有:
"dependencies": {
"Microsoft.Net.Http.Client": "1.0.0-*"
}
当我 运行 dnu restore
时,我收到一条错误消息:"Unable to locate Microsoft.Net.Http.Client >= 1.0.0-*"。评论者提到的另一个 post 已过时。
我正在 Mac OS X 中构建此应用程序。我认为这没有什么不同。不过,HttpClient
调用第三方 REST 的推荐方法是 API 吗?如果没有,我应该使用什么?如果是,我做错了什么?
谢谢!
我正在查看 NuGet page for that package。最早的版本号是2.0.20505
。您的项目指定了 1.0.0-*
的任何内容。似乎这样会排除 2.X
版本。尝试只指定最新版本 2.2.29
.
请注意,我不是 100% 熟悉 vNext 如何解析包,因此 1.0.0.0-*
可以很好地引入 2.X
包,我的回答只是基于语法的猜测。如果它不起作用,请告诉我,我会删除我的答案。
你试过了吗Microsoft ASP.NET Web API 2.2 Client Library
只需添加对您的 project.json
文件的引用,如下所示:
"dependencies": {
"Microsoft.AspNet.WebApi.Client": "5.2.3"
}
包恢复后,您可以像下面这样调用您的 Web Api:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://yourapidomain.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
var product = await response.Content.ReadAsAsync<Product>();
}
}
您还可以在 http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client
找到详细教程
我正在尝试使用 ASP.NET 核心(又名 vNext)构建应用程序。我需要调用第三方 REST-API。传统上,我会使用 HttpClient。但是,我似乎无法让它工作。在我的 project.json 文件中我有:
"dependencies": {
"Microsoft.Net.Http.Client": "1.0.0-*"
}
当我 运行 dnu restore
时,我收到一条错误消息:"Unable to locate Microsoft.Net.Http.Client >= 1.0.0-*"。评论者提到的另一个 post 已过时。
我正在 Mac OS X 中构建此应用程序。我认为这没有什么不同。不过,HttpClient
调用第三方 REST 的推荐方法是 API 吗?如果没有,我应该使用什么?如果是,我做错了什么?
谢谢!
我正在查看 NuGet page for that package。最早的版本号是2.0.20505
。您的项目指定了 1.0.0-*
的任何内容。似乎这样会排除 2.X
版本。尝试只指定最新版本 2.2.29
.
请注意,我不是 100% 熟悉 vNext 如何解析包,因此 1.0.0.0-*
可以很好地引入 2.X
包,我的回答只是基于语法的猜测。如果它不起作用,请告诉我,我会删除我的答案。
你试过了吗Microsoft ASP.NET Web API 2.2 Client Library
只需添加对您的 project.json
文件的引用,如下所示:
"dependencies": {
"Microsoft.AspNet.WebApi.Client": "5.2.3"
}
包恢复后,您可以像下面这样调用您的 Web Api:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://yourapidomain.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
var product = await response.Content.ReadAsAsync<Product>();
}
}
您还可以在 http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client
找到详细教程