Ho fatto qualche semplice test di confronto e alcune informazioni che ho scoperto è statoHttpClient vs HttpWebRequest per migliorare le prestazioni e la sicurezza e meno connessioni
singolo HttpClient potrebbe essere condiviso da richiesta multipla, se condivisa e le richieste sono da la stessa destinazione, più richieste potrebbero riutilizzare le connessioni WebRequest necessità di ricreare la connessione per ogni richiesta.
Ho anche guardato un po 'di documentazione su altri modi di utilizzare HttpClient esempio
Il seguente articolo riassume la connessione NTLM autenticato ad alta velocità condivisione
HttpWebRequest.UnsafeAuthenticatedConnectionSharing
possibili implementazioni che ho provato sono mostrati sotto
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")
Gradirei qualsiasi aiuto nel farmi capire quale approccio devo prendere in modo da ottenere le prestazioni max, riducendo al minimo le connessioni e fare in modo la sicurezza è non influenzato.
HttpClient è il nuovo capretto freddo in città, ed è presumibilmente il migliore di tutti, supporti asincroni/compiti, ed è molto più portabile di altri (c'è anche WebClient). Tuttavia richiede .NET 4.5+. Detto questo, non penso che dovresti vedere molte differenze tra loro in termini di prestazioni non elaborate se usate correttamente. –
Io uso HttpClient dare un'occhiata a questo post [STAI USANDO HTTPCLIENT ERRATO E STA DESTABILIZZANDO IL TUO SOFTWARE] (http://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/) –
sicuramente vai con HttpClient, a prescindere dal fatto che gestisce il pool di connessioni, async/await out of the box, offre una maggiore flessibilità tramite gli Handler ed è anche più facile scrivere i test unitari con HttpClient. – Duy