Httpclient Set Proxy C#

HttpClient and using proxy – constantly getting 407 – Stack …

Here is the code:
HttpClient client = null;
HttpClientHandler ClientHandler = new HttpClientHandler()
Proxy = new WebProxy((“{0}:{1}”, dress, ), false),
PreAuthenticate = true,
UseDefaultCredentials = false, };
edentials = new NetworkCredential(erName,
= new HttpClient(tpClientHandler);
And when I finally do this:
HttpResponseMessage ResponseMessage = (urlToPost, new StringContent(data, Encoding. UTF8, diaType));
It always throws the
The remote server returned an error: (407) Proxy Authentication
Which I do not understand for the world of me.
The same proxy set up works just fine when is configured in IE10 or if I use the HttpWebRequest class instead
asked Apr 24 ’15 at 20:07
You’re setting the proxy credentials in the wrong place.
edentials are the credentials you give to the server after the proxy has already established a connection. If you get these wrong, you’ll probably get a 401 or 403 response.
You need to set the credentials given to the proxy, or it will refuse to connect you to the server in the first place. The credentials you provide to the proxy may be different from the ones you provide to the server. If you get these wrong, you’ll get a 407 response. You’re getting a 407 because you never set these at all.
// First create a proxy object
var proxy = new WebProxy
Address = new Uri($”{proxyHost}:{proxyPort}”),
BypassProxyOnLocal = 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 ClientHandler = new HttpClientHandler
Proxy = proxy, };
// Omit this part if you don’t need to authenticate with the web server:
if (needServerAuthentication)
eAuthenticate = true;
eDefaultCredentials = false;
// *** These creds are given to the web server, not the proxy server ***
edentials = new NetworkCredential(
userName: serverUserName,
password: serverPassword);}
// Finally, create the HTTP client object
var client = new HttpClient(handler: ClientHandler, disposeHandler: true);
Tim14. 6k1 gold badge40 silver badges67 bronze badges
answered Jun 2 ’15 at 20:24
DarylDaryl3, 3151 gold badge12 silver badges13 bronze badges
You need to pass a proxy Handler. try this it worked for me
var handler = new HttpClientHandler();
faultProxyCredentials = faultCredentials;
var client = new HttpClient(handler);
HttpResponseMessage response = await ndAsync();
jo_va12. 2k3 gold badges21 silver badges41 bronze badges
answered Feb 20 ’19 at 23:56
TaranTaran2, 08723 silver badges21 bronze badges
I found some useful information about this here from From the replies, tests I made and research into the Class you need to pass the proxy credentials into the proxy object, not the HttpClientHandler.
Credentials = new (erName,
ssword), };
This actually is meant to authenticate the connection to the proxy, not the HttpClientHandler.
DGaspar6181 gold badge6 silver badges14 bronze badges
answered Jun 2 ’15 at 20:40
Not the answer you’re looking for? Browse other questions tagged c# proxy client or ask your own question.
HttpClient.DefaultProxy Property (System.Net.Http) - Microsoft ...

HttpClient.DefaultProxy Property (System.Net.Http) – Microsoft …

faultProxy Property () | Microsoft Docs
Skip to main content
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
In this article
Gets or sets the global Http proxy.
static property System::Net::IWebProxy ^ DefaultProxy { System::Net::IWebProxy ^ get(); void set(System::Net::IWebProxy ^ value);};
public static DefaultProxy { get; set;}
member faultProxy: with get, set
Public Shared Property DefaultProxy As IWebProxy
Property Value
A proxy used by every call that instantiates a HttpWebRequest.
The value passed cannot be null.
This static property determines the default proxy that all HttpClient instances use if no proxy is set explicitly in the HttpClientHandler passed through its constructor.
The default instance returned by this property will initialize following a different set of rules depending on your platform:
For Windows: Reads proxy configuration from environment variables or, if those are not defined, from the user’s proxy settings.
For macOS: Reads proxy configuration from environment variables or, if those are not defined, from the system’s proxy settings.
For Linux: Reads proxy configuration from environment variables or, in case those are not defined, this property initializes a non-configured instance that bypasses all addresses.
The environment variables used for DefaultProxy initialization on Windows and Unix-based platforms are:
HTTP_PROXY: the proxy server used on HTTP requests.
HTTPS_PROXY: the proxy server used on HTTPS requests.
ALL_PROXY: the proxy server used on HTTP and/or HTTPS requests in case HTTP_PROXY and/or HTTPS_PROXY are not defined.
NO_PROXY: a comma-separated list of hostnames that should be excluded from proxying.
On systems where environment variables are case-sensitive, the variable names may be all lowercase or all uppercase. The lowercase names are checked first.
The proxy server may be a hostname or IP address, optionally followed by a colon and port number, or it may be an URL, optionally including a username and password for proxy authentication. The URL must be start with, not, and cannot include any text after the hostname, IP, or port.
Applies to
Simple C# .NET 4.5 HTTPClient Request Using Basic Auth ...

Simple C# .NET 4.5 HTTPClient Request Using Basic Auth …

using System;
using neric;
namespace HTTP_Test
class program
static void Main()
Task t = new Task(HTTP_GET);
static async void HTTP_GET()
var TARGETURL = “;
HttpClientHandler handler = new HttpClientHandler()
Proxy = new WebProxy(“),
UseProxy = true, };
Console. WriteLine(“GET: + ” + TARGETURL);
//… Use HttpClient.
HttpClient client = new HttpClient(handler);
var byteArray = (“username:password1234”);
thorization = new (“Basic”, Base64String(byteArray));
HttpResponseMessage response = await tAsync(TARGETURL);
HttpContent content = ntent;
//… Check Status Code
Console. WriteLine(“Response StatusCode: ” + (int)atusCode);
//… Read the string.
string result = await adAsStringAsync();
//… Display the result.
if (result! = null &&
>= 50)
Console. WriteLine(bstring(0, 50) + “… “);}}}}

Frequently Asked Questions about httpclient set proxy c#

Leave a Reply

Your email address will not be published. Required fields are marked *