HttpClient vs HttpWebRequest pour de meilleures performances et de sécurité et moins de connexions

J'ai fait quelques test simple pour la comparaison et les quelques infos que j'ai trouvées

Unique HttpClient pourrait être partagée par plusieurs demande, si elle est partagée, et les demandes sont à la même destination, la demande multiple est possible de réutiliser les connexions
WebRequest besoin de recréer le lien pour chaque demande.

J'ai aussi cherché de la documentation sur d'autres façons d'utiliser HttpClient exemple

L'article suivant résume la haute vitesse authentifié NTLM partage de connexion

HttpWebRequest.UnsafeAuthenticatedConnectionSharing
Implémentations possibles que j'ai essayé sont indiqués ci-dessous

A)

private WebRequestHandler GetWebRequestHandler()
{
    CredentialCache credentialCache = new CredentialCache();
    credentialCache.Add(ResourceUriCanBeAnyUri, "NTLM", CredentialCache.DefaultNetworkCredentials);
    WebRequestHandler handler = new WebRequestHandler
    {
        UnsafeAuthenticatedConnectionSharing = true,
        Credentials = credentialCache
    };

    return handler;
}

using (HttpClient client = new HttpClient(GetWebRequestHandler(), false))
{
}

B)

using (HttpClient client = new HttpClient)
    {
    }

C)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("some uri string")

Je vous serais reconnaissant de toute aide en me faisant comprendre l'approche que je devrais prendre de façon à atteindre le max de performance , en minimisant les connexions et assurez-vous la sécurité n'est pas impacté.

HttpClient est le nouveau cool kid de la ville et il est soi-disant le meilleur de tous, prend en charge async/tâches, et est beaucoup plus mobiles que d'autres (il y a aussi WebClient). Cependant, il nécessite .NET 4.5+. Cela étant dit, je ne pense pas que vous devriez voir beaucoup de différences entre eux en termes de performances brutes lorsqu'il est utilisé correctement.
Je vous l'utilisez HttpClient ont un coup d'oeil à ce post VOUS UTILISEZ HTTPCLIENT MAL ET C'EST DÉSTABILISANT VOTRE LOGICIEL
certainement aller avec HttpClient, hormis le fait qu'il gère le regroupement de connexion, async/await hors de la boîte, il offre plus de flexibilité par leur intermédiaire des Gestionnaires et est également plus facile d'écrire des tests unitaires avec HttpClient.
HttpClient est conçu pour être instancié une fois et ré-utilisé tout au long de la durée de vie d'une application. En particulier dans les applications serveur, la création d'une nouvelle HttpClient instance pour chaque demande d'échappement, le nombre de sockets disponibles sous de lourdes charges. Cela entraînera une exception socketexception erreurs. Exemple: asp.net/web-api/overview/advanced/...

OriginalL'auteur StackOverflowVeryHelpful | 2015-01-06