远程服务器返回错误:(407)需要代理身份验证

时间:2012-06-21 23:30:55

标签: c# httpwebrequest

我引用了几个网站,这些网站都回答了这个问题 “远程服务器返回错误:(407)需要代理验证。” ,但没有一个是有帮助的。 我写了一个示例代码来检查办公室中的代理身份验证。代码抛出异常。

我的要求: - 验证网站返回的内容。在办公室以外,代码工作正常,但在办公室它会因代理而引发异常。 当我使用新的NetworkCredential对凭据进行硬编码时,它可以正常工作。

int ResponseCode;
string url = "http://www.msftncsi.com/ncsi.txt";
WebRequest request = WebRequest.Create(url);

request.Credentials = CredentialCache.DefaultCredentials;
using (WebResponse response = request.GetResponse())
 {

   Stream dataStream = response.GetResponseStream();
   StreamReader reader = new StreamReader(dataStream);
   responseFromServer = reader.ReadToEnd();
   ResponseCode = (int)((HttpWebResponse)response).StatusCode;
   reader.Close();
}

我不想硬编码。我在http://social.msdn.microsoft.com/Forums/is/csharpgeneral/thread/c06d3032-dceb-4a1a-bb6a-778fd13a938a中提到了解决方案,但即便如此也没有帮助。 我错过了什么?

2 个答案:

答案 0 :(得分:9)

我有同样的问题,这对我来说是个窍门

request.Proxy.Credentials = CredentialCache.DefaultCredentials;

答案 1 :(得分:4)

这里有很多东西。您可以尝试明确设置凭据

request.Credentials = new NetworkCredentials(username, password)

您可能需要指定代理。默认情况下,它使用您的IE代理。你可能不想要那个

WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true);