我正在使用Xamarin Forms项目中的HttpClient类。
虽然该类有文档,但是我找不到其方法可能引发哪些异常的任何文档。
例如GetAsync方法没有关于可能出现的异常的任何文档。但是我认为它会抛出某些异常,例如当服务器无法访问时。
是否有列表可以列出该类可能引发的所有异常?
我正在使用Xamarin Forms项目中的HttpClient类。
虽然该类有文档,但是我找不到其方法可能引发哪些异常的任何文档。
例如GetAsync方法没有关于可能出现的异常的任何文档。但是我认为它会抛出某些异常,例如当服务器无法访问时。
是否有列表可以列出该类可能引发的所有异常?
其他人已经评论过了,这取决于您使用 HttpClient 调用什么。我明白您的意思,因此以下是一些典型方法调用时抛出的异常。
SendAsync
可能会抛出以下异常:
Task
。来源:Microsoft Docs -> HttpClient -> SendAsync
类似地,GetAsync
PostAsync
PutAsync
GetStringAsync
GetStreamAsync
等方法也可能会抛出 ArgumentNullException
,HttpRequestException
和上面提到的异常(但不会抛出 InvalidOperationException
)。
来源:Microsoft Docs -> HttpClient -> GetAsync
一旦您调用了SendAsync
或GetAsync
等方法,您就会得到一个Task<HttpResponseMessage>
对象。在等待完成后,我倾向于调用EnsureSuccessStatusCode()
方法,如果返回的HTTP状态码不是成功的,则会抛出一个HttpRequestException
异常。https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161
OperationCanceledException
而不是 TaskCanceledException
。 - Dai
HttpResponseMessage
,它有两个属性IsSuccessStatusCode
和StatusCode
,可能是以下之一:https://msdn.microsoft.com/zh-cn/library/system.net.httpstatuscode(v=vs.118).aspx 这符合你的需求吗? - Tim SchmelterHttpRequestException
来包装所有异常,而 InnerException 属性将包含实际的根本异常。如果无法连接,服务器不存在等情况,你会得到HttpRequestException
+WebException
。 - Lasse V. Karlsen