如何在ASP.net 5.0(MVC6)中对REST API执行请求

时间:2015-06-17 14:16:20

标签: asp.net-mvc asp.net-core dotnet-httpclient

我正在使用Visual Studio 2015 RC编写ASP.Net 5,MVC 6应用程序(也称为“ASP.net vNext”)。

如何对REST API执行简单的GET请求?在.net 4.5中,我会使用HttpClient,但似乎不再可用。

我尝试按照Visual Studio的建议添加'System.Net.Http'和'Microsoft.Net.Http'软件包,但我仍然得到“无法找到类型或命名空间名称'HttpClient'”让我相信HttpClient不是在ASP.net 5中做到这一点的正确方法吗?

有人可以建议在ASP.net 5中发出HTTP GET请求的正确方法吗?

更新:我的问题不是'找不到ASP.NET 5.0中的HttpClient?'因为给出的答案已过时,不适用于最新版本的ASP.net 5.0

2 个答案:

答案 0 :(得分:4)

这是一个解决方案,我只是在ASP.Net 5网站项目模板上试了一下。将以下方法添加到HomeController

static async Task<string> DownloadPageAsync()
    {
        string page = "http://en.wikipedia.org/";

        using (HttpClient client = new HttpClient())
        using (HttpResponseMessage response = await client.GetAsync(page))
        using (HttpContent content = response.Content)
        {
            string result = await content.ReadAsStringAsync();

            return result.Substring(0, 50);
        }

    }

然后在HomeControllers Index方法

string test = DownloadPageAsync().Result;

在project.json中,我在依赖项中添加了以下引用

  "Microsoft.Net.Http": "2.2.22"

答案 1 :(得分:0)

我找到了一个答案,部分来自一个名为&#39; 没有找到ASP.NET 5.0中的HttpClient?&#39;,但是由于技术现在已经发生了变化,因此存在一些缺失。我在这里写了完整的解决方案:http://blogs.msdn.com/b/martinkearn/archive/2015/06/17/using-httpclient-with-asp-net-5-0.aspx