推荐使用单个实例重复使用HttpClient。但从API来看,添加证书的方式是在实例上进行而不是每个请求。如果我们添加了两个证书,如何确保“cert 1”仅发送到“one.somedomain.com”?
//A handler is how you add client certs (is there any other way?)
var _clientHandler = new HttpClientHandler();
//Add multiple certs
_clientHandler.ClientCertificates.Add(cert1);
_clientHandler.ClientCertificates.Add(cert2);
_clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
//Pretend this is our long-living HttpClient
var client = new HttpClient(_clientHandler);
//Now if we make a post request, will both certs be used?
using (HttpResponseMessage response = _client.PostAsync("https://one.somedomain.com", content).Result)
{
//...elided...
}
HttpClientHandler
并指定所需的行为。 - Krivitskiy Grigoriy