HttpClient Выбор IP alias
Каким образом я могу привязать HttpClient к определённому дополнительному IP адресу (alias), если их несколько на сетевом интерфейсе? Нашёл следующее решение:
public static HttpClient GetHttpClient(IPAddress address)
{
if (IPAddress.Any.Equals(address))
return new HttpClient();
SocketsHttpHandler handler = new SocketsHttpHandler();
handler.ConnectCallback = async (context, cancellationToken) =>
{
Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(address, 0));
socket.NoDelay = true;
try
{
await socket.ConnectAsync(context.DnsEndPoint, cancellationToken).ConfigureAwait(false);
return new NetworkStream(socket, true);
}
catch
{
socket.Dispose();
throw;
}
};
return new HttpClient(handler);
}
Однако использовать класс SocketsHttpHandler в .NET Framework 4.7.2 (целевая платформа для моего проекта) не представляется возможным - он доступен только в .NET Core 2.1 и более:
Может есть иные пути это реализовать? Мне важно использовать именно HttpClient и желательно обойтись без сторонних библиотек.
