57 votes

Quelles exceptions HttpClient peut-il lever?

Je suis à l'aide de HttpClient dans un xamarin forms projet

La classe est documentée, mais je ne peux pas trouver toute la documentation sur les exceptions ses méthodes pourraient jeter.

Par exemple, le GetAsync Méthode n'a pas de documentation sur les exceptions possibles. Mais je suppose que ça en jette, par exemple lorsque le serveur est inaccessible.

Est-il quelque part une liste d'exceptions à cette classe peut jeter?

86voto

BritishDeveloper Points 4280

Comme d'autres l'ont fait remarquer, il dépend de ce que vous appelez avec HttpClient. Je reçois ce que tu voulais dire et si bien que voici quelques exceptions levées avec typique des appels de méthode.

SendAsync pouvez jeter:

  • ArgumentNullException La demande est nulle.
  • InvalidOperationException Le message de demande a déjà été envoyé par le HttpClient instance.
  • HttpRequestException La demande a échoué en raison d'un problème sous-jacent, comme la connectivité réseau, défaillance du serveur DNS, serveur de certificat la validation ou de l'expiration.
  • TaskCanceledException La demande de délai ou si l'utilisateur a annulé la demande de l' Task.

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

De même, GetAsync PostAsync PutAsync GetStringAsync GetStreamAsync etc pouvez jeter ArgumentNullException, HttpRequestException et comme ci-dessus (mais pas InvalidOperationException).

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

Une fois que vous avez appelé SendAsync ou GetAsync etc vous aurez une Task<HttpResponseMessage>. Une fois attendu, j'ai tendance à appeler EnsureSuccessStatusCode() de jeter un HttpRequestException si il y a une non réussite code de statut HTTP renvoyé. https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X