我做了一些简单的测试比较和我发现的一些信息
单个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))
{
}
Run Code Online (Sandbox Code Playgroud)
B)
using (HttpClient client = new HttpClient)
{
}
Run Code Online (Sandbox Code Playgroud)
C)
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("some uri string")
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助,让我了解应该采取哪种方法,以实现最大性能,最小化连接并确保安全性不受影响.