我在xamarin表单项目中使用HttpClient
该类已记录在案,但我找不到任何关于其方法可能引发异常的文档。
例如,GetAsync方法没有关于可能的例外的任何文档。但我认为它会抛出,例如当服务器无法访问时。
这个类可能会抛出一些异常列表吗?
答案 0 :(得分:46)
正如其他人评论的那样,它取决于您使用HttpClient调用的内容。我得到你的意思,所以这里有一些典型的方法调用抛出的异常。
SendAsync
可以抛出:
Task
。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<HttpResponseMessage>
。等待,如果返回的HTTP状态代码不成功,我倾向于致电EnsureSuccessStatusCode()
抛出 HttpRequestException
。 https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161