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 и желательно обойтись без сторонних библиотек.


Ответы (0 шт):