Как вызвать 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.

Другие вопросы по тегам