Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ASP.NET核心应用程序中使用HttpClient_Asp.net_Httpclient_Asp.net Core - Fatal编程技术网

如何在ASP.NET核心应用程序中使用HttpClient

如何在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-*”。评论人提到的另一篇文章已经过

我正在尝试用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-*”。评论人提到的另一篇文章已经过时了

我正在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该方法似乎过时了。然而,我试着遵循在投票中发现的方法,我仍然得到了同样的错误。好吧,我收回了我的接近票。