HttpClient可以抛出哪些异常?

Nat*_*han 40 c# httpclient

我在xamarin表单项目中使用HttpClient

该类已记录,但我找不到任何有关其方法可能引发异常的文档.

例如,GetAsync方法没有关于可能的异常的任何文档.但我认为它会抛出,例如当服务器无法访问时.

这个类可能会抛出一些例外列表吗?

Bri*_*per 57

正如其他人评论的那样,它取决于您使用HttpClient调用的内容.我得到你的意思,所以这里有一些典型的方法调用抛出的异常.

SendAsync 可以抛出:

  • ArgumentNullException请求为null.
  • InvalidOperationException HttpClient实例已发送请求消息.
  • HttpRequestException由于基础问题(例如网络连接,DNS故障,服务器证书验证或超时),请求失败.
  • TaskCanceledException 请求超时或用户取消请求Task.

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

类似地,GetAsync PostAsync PutAsync GetStringAsync GetStreamAsyncetc可以抛出ArgumentNullException,HttpRequestException如上所述(但不是InvalidOperationException).

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

一旦你打电话SendAsyncGetAsync等,你将有一个Task<HttpResponseMessage>.一旦等待我倾向于看涨EnsureSuccessStatusCode()抛出HttpRequestException,如果有返回非成功HTTP状态代码.https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161