4

我参考了几个网站,它们回答了这个问题“远程服务器返回错误:(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中提到了解决方案,但即使这样也没有帮助。我错过了什么?

4

2 回答 2

9

我有同样的问题,这对我有用

request.Proxy.Credentials = CredentialCache.DefaultCredentials;

于 2012-08-08T07:28:51.070 回答
4

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

request.Credentials = new NetworkCredentials(username, password)

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

WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true); 
于 2012-06-21T23:41:34.307 回答