Система.Aggregate исключение при GetStringAsync в asp.net

#c# #asp.net-mvc #api

#c# #asp.net-mvc #API

Вопрос:

Я пытаюсь вызвать API, подобный этому:

 var client = new HttpClient();
client.DefaultRequestHeaders.Add("apiKey", Token);
**var result = await client.GetStringAsync(GetUrl($"accounts/{accountID}/menu?skip=0amp;limit=1"));**
var menuList = JsonConvert.DeserializeObject<List<Menu>>(result);
  

но получение System.Исключение AggregateException при GetStringAsync, ошибка CS0103: имя ‘InnerExceptionCount’ не существует в текущем контексте

и сообщение об исключении

Произошла одна или несколько ошибок. (Код состояния ответа не указывает на успех: 404 (не найден).)

Я вижу, что это возвращается в результате Status = WaitingForActivation, Method = «{null}», Result = «{Еще не вычислено}

Я попытался выполнить вызов, используя postman с тем же URL и apikey в заголовке, и я вижу результаты.

Не могли бы вы подсказать, что не так с приведенным выше кодом. Ключ Api ожидает только apiKey в заголовке.

Спасибо.

Ответ №1:

В любое время, когда асинхронный вызов завершается неудачно, вы получите AggregateException , что важно, внутреннее исключение внутри этого.

Похоже, что ваше внутреннее исключение 404 Not Found, что означает, что вы не вызываете правильный URL.

Вы сказали, что это работает в postman, это здорово. Чтобы найти основную причину, я предлагаю следующее:

  1. Запуск скрипача
  2. Выполните вызов через postman, просмотрите запрос в Fiddler
  3. Выполните вызов через свой код на C #, просмотрите запрос в Fiddler

Сравнение запроса Postman с запросом C # должно показать вам, где ошибка.