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等可以抛出ArgumentNullExceptionHttpRequestException (但不是InvalidOperationException )。

https://msdn.microsoft.com/en-us/library/hh158944(v=vs.110).aspx

一旦调用了SendAsyncGetAsync等,就会有一个Task 。 一旦等待,我倾向于调用EnsureSuccessStatusCode()以在返回非成功HTTP状态代码时抛出HttpRequestExceptionhttps://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161