[c#] Pourquoi utiliser HttpClient pour une connexion synchrone


Answers

Je répète Donny V. répondre et Josh

"La seule raison pour laquelle je n'utiliserais pas la version asynchrone est si j'essayais de supporter une ancienne version de .NET qui n'a pas encore de support asynchrone intégré."

(et upvote si j'avais la réputation.)

Je ne me souviens pas de la dernière fois, je suis reconnaissant du fait que HttpWebRequest ait jeté des exceptions pour les codes d'état> = 400. Pour contourner ces problèmes, vous devez immédiatement attraper les exceptions et les mapper à des mécanismes de réponse sans exception dans votre code ... ennuyeux, fastidieux et l'erreur en soi. Qu'il s'agisse de communiquer avec une base de données ou d'implémenter un proxy Web sur mesure, il est toujours souhaitable que le pilote Http dise simplement à votre code d'application ce qui a été renvoyé, et vous laisse décider comment vous comporter.

Par conséquent, HttpClient est préférable.

Question

Je construis une bibliothèque de classes pour interagir avec une API. J'ai besoin d'appeler l'API et de traiter la réponse XML. Je peux voir les avantages de l'utilisation de HttpClient pour la connectivité asynchrone, mais ce que je fais est purement synchrone, donc je ne vois pas d'avantage significatif sur HttWebRequests.

Si quelqu'un peut faire la lumière, je l'apprécierais grandement. Je ne suis pas du genre à utiliser les nouvelles technologies pour le plaisir.




Si vous construisez une bibliothèque de classes, les utilisateurs de votre bibliothèque voudront peut-être utiliser votre bibliothèque de manière asynchrone. Je pense que c'est la principale raison.

Vous ne savez pas non plus comment votre bibliothèque va être utilisée. Peut-être que les utilisateurs traiteront beaucoup, beaucoup de demandes, et le faire de manière asynchrone le rendra plus rapide et plus efficace.

Si vous pouvez le faire simplement, essayez de ne pas mettre le fardeau sur les utilisateurs de votre bibliothèque en essayant de rendre le flux asynchrone quand vous pouvez en prendre soin pour eux.

La seule raison pour laquelle je n'utiliserais pas la version asynchrone est si j'essayais de supporter une ancienne version de .NET qui n'a pas encore de support asynchrone intégré.




Links