HttpClient with proxy

HttpClient with proxy

// First create a proxy object

var proxy = new WebProxy()
{
    Address = new Uri($"{proxyHost}:{proxyPort}"),
    BypassOnLocal = false,
    UseDefaultCredentials = false,

    // *** These creds are given to the proxy server, not the web server ***
    Credentials = new NetworkCredential(
        userName: proxyUserName,
        password: proxyPassword);
};

// Now create a client handler which uses that proxy

var httpClientHandler = new HttpClientHandler()
{
    Proxy = proxy,
};

// Omit this part if you don't need to authenticate with the web server:
if (needServerAuthentication)
{
    httpClientHandler.PreAuthenticate = true;
    httpClientHandler.UseDefaultCredentials = false;

    // *** These creds are given to the web server, not the proxy server ***
    httpClientHandler.Credentials = new NetworkCredential(
        userName: serverUserName,
        password: serverPassword);
}

// Finally, create the HTTP client object

var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);

Leave a Reply