当尝试调用外部 Web 服务(通过互联网)上的方法时,它抛出了我 “远程服务器返回错误:(407) 需要代理身份验证。”
为了解决这个问题,我使用以下代码来设置我们在办公室使用的代理:
//Set the system proxy with valid server address or IP and port.
System.Net.WebProxy pry = new System.Net.WebProxy("MyHost", 8080);
//The DefaultCredentials automically get username and password.
pry.Credentials = System.Net.CredentialCache.DefaultCredentials;
System.Net.WebRequest.DefaultWebProxy = pry;
这很好用,但现在......我需要做“更少的编码”,尝试从我的系统获取信息,而不是手动设置。
这将使用我认为 IE 的默认代理(未弃用):
Services.MyService service = new Services.MyService();
service.UseDefaultCredentials = true;
service.Proxy = new System.Net.WebProxy();
service.Proxy.Credentials = service.Credentials;
System.Net.WebProxy.GetDefaultProxy(),尽管 VS 警告它已被弃用。