Я обнаружил, что один HttpClient может совместно использоваться несколькими запросами. При совместном использовании и запросах к одному и тому же месту несколько запросов могут повторно использовать соединения. WebRequest необходимо пересоздавать соединение для каждого запроса.
Я также посмотрел некоторые документы о других способах использования HttpClient в примерах.
В следующей статье описывается высокоскоростной общий доступ к подключению с проверкой подлинности NTLM: HttpWebRequest.UnsafeAuthenticatedConnectionSharing
Возможные реализации, которые я опробовал, показаны ниже
А)
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))
{
}
В)
using (HttpClient client = new HttpClient)
{
}
С)
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("some uri string")
Я был бы признателен за любую помощь, чтобы дать мне понять, какой подход я должен использовать для достижения максимальной производительности, минимизации подключений и обеспечения безопасности.