web-dev-qa-db-fra.com

Quelles exceptions HttpClient peut-il lancer?

J'utilise HttpClient dans un projet de formulaires xamarin

La classe est documentée, mais je ne trouve aucune documentation sur les exceptions que ses méthodes pourraient générer.

Par exemple, la méthode GetAsync ne contient aucune documentation sur les exceptions possibles. Mais je suppose que cela jette, par exemple lorsque le serveur est inaccessible.

Existe-t-il quelque part une liste d'exceptions que cette classe pourrait lancer?

38
Nathan

Comme d'autres l'ont commenté, cela dépend de ce que vous appelez avec HttpClient. Je comprends ce que vous vouliez dire et voici donc quelques exceptions avec des appels de méthode typiques.

SendAsync peut lancer:

  • ArgumentNullException La requête était nulle.
  • InvalidOperationException Le message de demande a déjà été envoyé par l'instance HttpClient.
  • HttpRequestException La demande a échoué en raison d'un problème sous-jacent tel que la connectivité réseau, un échec DNS, la validation du certificat de serveur ou le délai d'attente.
  • TaskCanceledException La demande a expiré ou l'utilisateur a annulé le Task de la demande .

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

De même GetAsyncPostAsyncPutAsyncGetStringAsyncGetStreamAsync etc peut lancer 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 un Task<HttpResponseMessage>. Une fois attendu, j’ai tendance à appeler EnsureSuccessStatusCode() pour lancer un HttpRequestException s’il ya un code d’état HTTP non réussi, . https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161

56
BritishDeveloper