2017-05-04 3 views
0

Je cherche une bibliothèque ou une classe similaire comme httpwebrequest qui ne lance pas d'exceptions sur les codes http. (C# language) Un problème avec httpwebrequest est qu'il se comporte comme les exceptions les codes d'erreur http (comme 401,403 et ...) et déclenche une exception dans le cas de ceux-ci. Vous savez peut-être que le lancement et la manipulation des exceptions coûtent cher. par exemple une requête réussie prend environ 30 ms sur mon système, mais une autre requête qui provoque une exception en prend environ 250! Je fais beaucoup de demande qui provoque ces codes d'erreur http et il affecte beaucoup mes performances de code. J'ai essayé webclient, webrequest, httpclient et tous sont les mêmes dans ce domaine. Une opinion sur une bibliothèque alternative ou comment éviter ces exceptions?N'importe quelle bibliothèque C# pour faire des requêtes similaires à httpwebrequest mais sans lancer d'exceptions

+0

http://restsharp.org/ peut-être? – Webbanditten

+0

Je pense que 'HttpClient' ne lance pas d'exceptions. C'est la mise en œuvre la plus récente de toute façon. Mais je ne pense pas que les exceptions soient la partie si onéreuse d'une requête web pour s'en soucier. – NtFreX

+1

Ceci est en quelque sorte mon problème personnel avec des exceptions, si vous avez du code qui jette autant d'exceptions, aussi souvent que vous le dites, * la meilleure solution est de retravailler vos données pour ne pas jeter autant d'exceptions, ne pas ignorer le exceptions ou les gérer *, car pour chaque exception que vous manipulez, vous ralentissez les performances, alors que vous auriez pu simplement retravailler votre système pour ne pas lancer les exceptions en premier lieu. –

Répondre

1

HttpClient.GetAsync() ne lèvera pas une exception sur une erreur de niveau 400. Bien qu'il va lancer une exception pour "un problème sous-jacent tel que la connectivité réseau, l'échec DNS, la validation du certificat serveur ou le délai d'expiration".

En outre, le HttpReponseMessage qu'il produit possède une propriété pratique IsSuccessStatusCode.

0

Découvrez RestSharp. C'est un excellent outil pour créer des requêtes Web