error (407) "Proxy Authentication Required."
Solution 1
WebProxy proxy = new WebProxy(proxyAddress);
proxy.Credentials = new NetworkCredential("username", "password", "domain");
proxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = proxy;
HttpWebRequest request = new HttpWebRequest();
request.Proxy = proxy;
Or you could use WebClient
.
WebClient client = new WebClient();
client.Proxy = proxy;
string downloadString = client.DownloadString("http://www.google.com");
Solution 2
For me it was as simple as telling it to use the DefaultCredentials (though I still haven't figured out why it can't use these by default):
request.Proxy.Credentials = (System.Net.NetworkCredential)System.Net.CredentialCache.DefaultCredentials;
Solution 3
You might want to look at System.Net.HttpWebRequest.Proxy on MSDN.
This gives details of how to set proxy authentication.
There is also a working code sample on this SO answer: https://stackoverflow.com/a/9603791/204690
For example:
// Create a new request to the mentioned URL.
HttpWebRequest myWebRequest= (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
// Obtain the 'Proxy' of the Default browser.
IWebProxy proxy = myWebRequest.Proxy;
if (proxy != null)
{
// Create a NetworkCredential object and associate it with the
// Proxy property of request object.
proxy.Credentials=new NetworkCredential(username,password);
// or
proxy.UseDefaultCredentials = true;
// try forcing the proxy to use http (just to the proxy not from proxy to server)
UriBuilder proxyAddress = new UriBuilder(proxy.Address);
proxyAddress.Scheme = "http";
myWebRequest.Proxy=proxy;
}
HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();
Comments
-
Tim almost 4 years
I have a requirement like...i want to access an url (login page which is web) from a winforms. i have to pass the credentials to that url and the response should be the contect of the authenticated web page(markup).
I have written a function which will request the url and return the response. but i am getting error code (407)
"Proxy Authentication Required."
Here is my code.
private static void GetPageContent(){ string url = "https://LoginPage.aspx/"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; // If required by the server, set the credentials. //request.Proxy.Credentials = CredentialCache.DefaultCredentials; request.Credentials = new NetworkCredential("user1", "testuser#"); // Get the response. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Display the status. Console.WriteLine(response.StatusDescription); // Get the stream containing content returned by the server. Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. string responseFromServer = reader.ReadToEnd(); // Display the content. Console.WriteLine(responseFromServer); // Cleanup the streams and the response. reader.Close(); dataStream.Close(); response.Close(); }