我引用了几个网站,这些网站都回答了这个问题 “远程服务器返回错误:(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中提到了解决方案,但即便如此也没有帮助。 我错过了什么?
答案 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);