asp.net中的GetStringAsync上的System.AggregateException

时间:2016-10-11 16:53:37

标签: 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=0&limit=1"));**
var menuList = JsonConvert.DeserializeObject<List<Menu>>(result);

但在GetStringAsync上获取System.AggregateException,错误CS0103:当前上下文中不存在名称“InnerExceptionCount”

和异常消息

发生了一个或多个错误。 (响应状态代码不表示成功:404(未找到)。)

我看到这是在结果中返回的  Status = WaitingForActivation,Method =“{null}”,Result =“{Not yet computed}

我尝试使用postman在头文件中使用相同的url和apikey进行调用,我看到了结果。

您能告诉我们上面的代码有什么问题吗? Api密钥只需要标头中的apiKey。

感谢。

1 个答案:

答案 0 :(得分:2)

如果异步通话失败,您将获得AggregateException,其中最重要的是内部异常。

看起来您的内部异常是404 Not Found,这意味着您没有调用正确的网址。

你说它在邮递员工作,这很棒。为了找到根本原因,我建议如下:

  1. 启动Fiddler
  2. 通过邮递员拨打电话,在Fiddler中查看请求
  3. 通过C#代码拨打电话,查看Fiddler中的请求
  4. 将Postman请求与C#请求进行比较应该告诉您错误的位置。