O erro acima é diretamente encontrado quando se precisa da execução de uma chamada a internet via código dentro de uma rede que necessita de proxy como ocorreu comigo ontem.
Então vamos a solução Suponhamos que uma aplicação em C# com o seguinte código.
WebClient client = new WebClient();
Stream rssStream = client.OpenRead(Url);
StreamReader textReader = new StreamReader(rssStream);
XmlTextReader xmlReader = new XmlTextReader(textReader);
XmlDocument xmlDoc= new XmlDocument();
xmlDoc.Load(xmlReader);
E a aplicação retorne o seguinte erro em Tempo de Execução:
An unhandled exception of type 'System.Net.WebException' occurred in system.dll
Additional information: The remote server returned an error: 407 Proxy Authentication Required.
E seja necessária a implantação da conexão utilizando algum proxy como vemos a seguir em um exemplo para WebClient.
System.Net.WebProxy proxy = new System.Net.WebProxy(yourproxyserver);
proxy.Credentials = CredentialCache.DefaultCredentials;
//if there is username/password for your proxy server setting, uncomment the following statemtnt instead.
//proxy.Credentials = new NetworkCredential(username, password);
GlobalProxySelection.Select = proxy;
WebClient client = new WebClient();
Stream rssStream = client.OpenRead(Url);
StreamReader textReader = new StreamReader(rssStream);
XmlTextReader xmlReader = new XmlTextReader(textReader);
XmlDocument xmlDoc= new XmlDocument();
xmlDoc.Load(xmlReader);
Ou um exemplo para WebRequest.
System.Net.WebRequest req = System.Net.WebRequest.Create(Url);
req.Proxy = new System.Net.WebProxy(yourproxyserver, true);
req.Proxy.Credentials = CredentialCache.DefaultCredentials;
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader textReader = new System.IO.StreamReader(resp.GetResponseStream());
XmlTextReader xmlReader = new XmlTextReader(textReader);
XmlDocument xmlDoc= new XmlDocument();
xmlDoc.Load(xmlReader);
Simples mas espero ter ajudado.
Fonte GiCode