如何用 ASP.NET 调用 RESTful API 5

How to call a RESTful API with ASP.NET 5

在 Visual Studio 代码中的 Mac 上使用 ASP.NET 5。我有一个 RESTful API 我需要打电话,但不确定具体如何操作。我见过很多使用 WebClient、HttpClient、WebRequest 和 HttpWebRequest 的示例。

我觉得我的痛点是dnxcore50框架。有人可以用一些代码示例为我指明正确的方向吗?

我假设它与我们在 ASP .NET 5 之前使用的方式相同,因此首先安装 ASP .NET Web API 客户端库 NuGet包。

在可用的情况下,您参考 System.Net.Http:

using System.Net.Http;

然后你使用它如下:

using (var httpClient = new HttpClient())
{
    var response1 = await httpClient.GetAsync(url1);
    var response2 = await httpClient.PostAsync(url2);
    var response3 = await httpClient.SendAsync(url3);
}

这只是给你的回应。通常您会想要查看内容,尤其是对于 GET 请求。您可以通过以下方式完成此操作:

var content = await response1.Content.ReadAsStringAsync();

那只是给你内容中的字符串,所以如果它是 JSON,你可能想使用类似 JSON.NET (Newtonsoft.Json) 的东西将它反序列化为结构化 类.

这是靠记忆,因此您可能需要稍微调整一下。

为此,我使用了 NuGet 提要 https://api.nuget.org/v3/index.json

在我的 project.json 中,我目前有这些相关的依赖项并且只使用 "dnxcore50" 框架:

"Microsoft.AspNet.WebApi.Client": "5.2.3",
"System.Net.Http": "4.0.0",
"System.Runtime.Serialization.Xml": "4.0.10"

那我用的是HttpClient。现在 (beta7) 它不适用于 Linux 或 OSX 因为 https://github.com/dotnet/corefx/issues/2155.

这里有一个关于如何调用服务的例子。请仔细检查 Referencesusing

您必须做的一件重要事情是安装 Web API 客户端库程序包:从“工具”菜单中,select NuGet 包管理器,然后是 select 包管理器控制台。在程序包管理器控制台 window 中,键入以下命令:Install-Package Microsoft.AspNet.WebApi.Client.

如需完整源代码,请查看此 link