如何在ASP.NET核心应用程序中使用HttpClient
我正在尝试用ASP.NET核心(又名vNext)构建一个应用程序。我需要调用第三方REST-API。传统上,我会使用HttpClient。然而,我似乎无法让它发挥作用。在我的project.json文件中,我有:如何在ASP.NET核心应用程序中使用HttpClient,asp.net,httpclient,asp.net-core,Asp.net,Httpclient,Asp.net Core,我正在尝试用ASP.NET核心(又名vNext)构建一个应用程序。我需要调用第三方REST-API。传统上,我会使用HttpClient。然而,我似乎无法让它发挥作用。在我的project.json文件中,我有: "dependencies": { "Microsoft.Net.Http.Client": "1.0.0-*" } 当我运行dnu restore时,我收到一个错误:“找不到Microsoft.Net.Http.Client>=1.0.0-*”。评论人提到的另一篇文章已经过
"dependencies": {
"Microsoft.Net.Http.Client": "1.0.0-*"
}
当我运行dnu restore
时,我收到一个错误:“找不到Microsoft.Net.Http.Client>=1.0.0-*”。评论人提到的另一篇文章已经过时了
我正在Mac OS X上构建这个应用程序。我不认为这有什么区别。不过,HttpClient
是调用第三方restapi的推荐方法吗?如果没有,我应该使用什么?如果是,我做错了什么
谢谢大家! 我正在看电视。最早的版本号是2.0.20505
。您的项目指定了1.0.0-*
的任何内容。似乎这将排除2.X版本。尝试只指定最新版本2.2.29
请注意,我对vNext解析包的方式不是100%熟悉,因此1.0.0.0-*
很可能会引入2.X
包,我的答案只是基于语法的猜测。如果它不起作用,请告诉我,我将删除我的答案。你试过了吗
只需添加对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>();
}
}
使用(var-client=new-HttpClient())
{
client.BaseAddress=新Uri(“http://yourapidomain.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
var response=await client.GetAsync(“api/products/1”);
if(响应。IsSuccessStatusCode)
{
var product=wait response.Content.ReadAsAsync();
}
}
您还可以在上找到详细的教程,可能重复的无法回答您缺少的二进制问题,但HttpClient是首选(较新版本)的API(而不是WebClient)@Patrickhoffman该方法似乎过时了。然而,我试着遵循在投票中发现的方法,我仍然得到了同样的错误。好吧,我收回了我的接近票。