Использование HttpClient в WinForms: можно ли проанализировать результат JSON, используя привязку модели, аналогичную найденной в Web API

Я предполагаю, что пытаюсь взаимодействовать с веб-API, как если бы это были дни веб-службы SOAP xml..., где был создан прокси-объект CLR на основе WSDL после общения с сервером через HTTP. Я не с нетерпением жду перехода к ответу JSON с использованием JSON.NET, но, если потребуется, я сделаю это.

Итак... как мы все знаем (все мы веб-разработчики ASP.NET) - мы можем использовать веб-API (и веб-API 2 и т. Д.), Чтобы просто ПОСТАВИТЬ JSON в контроллер API и привязку модели (err.. привязку параметра)?) способен анализировать это в моем предпочтительном объекте CLR.

Допустим, у меня теперь есть клиент WinForms, который хочет взаимодействовать с моим модным сервером веб-API - и я предполагаю, что мне следует поговорить с этим веб-API с помощью HttpClient

Есть ли предпочтительный способ взаимодействия с веб-API для получения объекта CLR из него? Я предполагаю, что я собираюсь получить JSON из этого, что я должен затем привязать к объекту CLR... и это мой главный вопрос... как я могу сделать то же самое создание CLR-from-JSON на моем клиенте, что Я вижу, что происходит, когда я отправляю JSON на сервер.


ОБНОВИТЬ


Ключевой термин, о котором я не думал, когда впервые написал этот вопрос, это "десериализация"... теперь я нахожу такие результаты, как JsonConvert.DeserializeObject<MyObj>(json); а также System.Web.Script.Serialization.JavaScriptSerializer

Все еще любопытно, есть ли предпочтение там -

1 ответ

Решение

Вы можете (попытаться) прочитать содержимое ответа HttpClient как любой объект. Вот пример метода

public async Task<List<GroupListViewRow>> ListAccountGroupAsync(Guid ledgerId) {
        var response = await this.http.GetAsync($"v1/group/list?ledgerId={ledgerId}");
        response.EnsureSuccessStatusCode();
        var res = await response.Content.ReadAsAsync<List<GroupListViewRow>>();
        return res;
    }

Этот читает ответ, как будто это List<GroupListViewRow>

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