HttpClient可以抛出哪些exception?
我在xamarin表单项目中使用HttpClient
该类已记录在案,但我找不到任何有关其方法可能引发exception的文档。
例如, GetAsync方法没有关于可能的exception的任何文档。 但我认为它会抛出,例如服务器无法访问时。
这个类可能会抛出一些exception列表吗?
正如其他人评论的那样,它取决于您使用HttpClient调用的内容。 我得到你的意思,所以这里有一些典型的方法调用抛出的exception。
SendAsync
可以抛出:
- ArgumentNullException请求为null。
- InvalidOperationException HttpClient实例已发送请求消息。
- HttpRequestException由于基础问题(例如网络连接,DNS故障,服务器证书validation或超时),请求失败。
https://msdn.microsoft.com/en-us/library/hh138176(v=vs.110).aspx
类似地, GetAsync
PostAsync
PutAsync
GetStringAsync
GetStreamAsync
等可以抛出ArgumentNullException
和HttpRequestException
(但不是InvalidOperationException
)。
https://msdn.microsoft.com/en-us/library/hh158944(v=vs.110).aspx
一旦调用了SendAsync
或GetAsync
等,就会有一个Task
。 一旦等待,我倾向于调用EnsureSuccessStatusCode()
以在返回非成功HTTP状态代码时抛出HttpRequestException
。 https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161