我在一个xamarin表单项目中使用HttpClientHttpClient会抛出哪些异常?
该类有文档记录,但我找不到任何关于它的方法可能抛出哪些异常的文档。
例如GetAsync方法没有关于可能的例外的任何文档。但我认为它会抛出,例如服务器无法访问时。
有什么地方可能会抛出异常列表?
我在一个xamarin表单项目中使用HttpClientHttpClient会抛出哪些异常?
该类有文档记录,但我找不到任何关于它的方法可能抛出哪些异常的文档。
例如GetAsync方法没有关于可能的例外的任何文档。但我认为它会抛出,例如服务器无法访问时。
有什么地方可能会抛出异常列表?
正如其他人所说的,它取决于你用HttpClient调用什么。我明白你的意思,所以这里是一些典型的方法调用抛出的异常。
SendAsync
可以抛出:
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
它也可以t hrow'TaskCanceledException':https://stackoverflow.com/a/12901496/67824。 –
是的,在特定方法的文档中。你为什么想知道? – CodeCaster
你得到一个'HttpResponseMessage',它具有属性'IsSuccessStatusCode'和'StatusCode',它可以是下列之一:https://msdn.microsoft.com/en-us/library/system.net.httpstatuscode(v=vs .118).aspx这是你在找什么? –
@CodeCaster我找不到有关异常的任何文档(例如:https://msdn.microsoft.com/de-de/library/hh158944(v=vs.118).aspx)。我想知道,因为我想处理所有的例外情况。 – Nathan