Я использую HttpClient, чтобы сделать запрос к Soap Api. Я видел, что рекомендуется использовать один экземпляр HttpClient вместо этого один раз для каждого запроса, чтобы избежать SocketException.
В моем приложении для настольного компьютера мне нужно сделать несколько запросов, каждый с разными учетными данными. Я делаю это как пример кода:
WebRequestHandler requestHandler = new WebRequestHandler();
requestHandler.ClientCertificates.Add(certificate);
using(var client = new HttpClient(requestHandler))
{
try
{
HttpResponseMessage response = await client.PostAsync("https://nfe-homologacao.svrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao4.asmx", httpContent);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
catch (HttpRequestException e)
{
return e.Message;
}
}
Однако я бы хотел избежать создания экземпляра HttpClient для каждого запроса. Я понял, что правильным способом является использование экземпляра stati c следующим образом:
static readonly HttpClient client = new HttpClient();
Но с экземпляром stati c я не могу установить учетные данные с помощью WebRequestHandler. Обратите внимание, что учетные данные меняются при каждом запросе.
Как лучше выполнять все запросы, избегая SocketException и используя разные учетные данные?