#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, это здорово. Чтобы найти основную причину, я предлагаю следующее:
- Запуск скрипача
- Выполните вызов через postman, просмотрите запрос в Fiddler
- Выполните вызов через свой код на C #, просмотрите запрос в Fiddler
Сравнение запроса Postman с запросом C # должно показать вам, где ошибка.