Как вызвать RESTful API с помощью ASP.NET 5
Работа с ASP.NET 5 на моем Mac в коде Visual Studio. У меня есть API-интерфейс RESTful, который мне нужно вызвать, и я точно не знаю, как это сделать. Я видел много примеров использования WebClient, HttpClient, WebRequest и HttpWebRequest.
Я думаю, что моя болевая точка - это структура dnxcore50. Может кто-нибудь, пожалуйста, укажите мне правильное направление с некоторыми примерами кода?
3 ответа
Вот пример того, как позвонить в службу. Пожалуйста, проверьте References
а также using
внимательно.
Одна важная вещь, которую вам нужно сделать, - это установить пакет клиентских библиотек Web API: в меню Сервис выберите Диспетчер пакетов NuGet, затем выберите Консоль диспетчера пакетов. В окне консоли диспетчера пакетов введите следующую команду: Install-Package Microsoft.AspNet.WebApi.Client
,
Для полного исходного кода, проверьте эту ссылку.
Я предполагаю, что это так же, как мы делали это до ASP .NET 5, поэтому сначала вы устанавливаете пакет NuGet клиентских библиотек веб-API ASP.NET.
Имея это в виду, вы ссылаетесь 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. Прямо сейчас (бета7) он не работает в Linux или OSX из-за https://github.com/dotnet/corefx/issues/2155.