关于HttpClient的PostAsync方法的文档有点......偏低。
我想知道它的行为: 是否在超时或网站调用引发异常时会带来任何异常?如果不是这些情况会发生什么?
例如
using (HttpClient Client = new HttpClient())
{
var result = Client.PostAsync(url, content).Result;
}
该网站有时会抛出异常,或者在流量超时的情况下抛出异常。我不确定结果如何。我是否会获得异常,“无限循环”(因此不会发生超时),或者如果抛出异常或发生超时,结果是否为空?
答案 0 :(得分:2)
首先请注意,请避免使用Result
。这是一个阻止电话。您应该使用async / await关键字。将相应的方法标记为async,并在方法调用前加上await:
var result = await Client.PostAsync(url, content);
关于您的问题,此次调用的结果为Task<HttpResponseMessage>
。
可在此处TaskStatus Enumeration找到任务的状态。当然这个电话会失败。所以你应该捕获任何可能引发的异常。