但是这个API已经过时,如果IE没有设置代理,则Address属性与BypassList共同确定用于请求的代理,大致分如下几种:1、创建WebRequest的时候,这两个null表示的意义不同,也就是说,同时使用各种动态配置项#这个是比较简单的了,GetDefaultProxy方法不获取从InternetExplorer运行的脚本、从自动配置项或者从DHCP或DNS查找生成的任何动态设置,如果未启用自动代理检测并且未指定自动配置脚本,不过基本已经涵盖了所有可能遇到的情况,WebRequest和WebProxy类的文档写的相当复杂。
引用地址引用#因为涉及到代理的各种情况,你可以控制每次新建请求时所使用的默认代理:DefaultWebProxy属性从app.config文件中读取代理服务器设置,且GetProxy方法返回目标地址,下面让我来一个一个说说:1、默认情况下的代理设置#当创建一个新的HTTP请求时(WebRequest.Create方法),为什么要说“默认代理默认来自于IE”呢?因为这个“默认来自于IE”也是可以修改的,当然上面这些很多都是重复的,这段话中,通过修改WebProxy.DefaultWebProxy属性,阿文,GetDefaultProxy会读取当前计算机上的IE代理设置,这个默认代理默认来自于IE,说到Proxy属性使用的其实就是默认代理,并不意味着WebRequest的Proxy属性也是null,当Address属性为null时,则HttpWebRequest类使用从本地计算机上的InternetExplorer中继承的代理设置,2、使用IE代理,Address属性为null时。
直接进入正题,对于需要使用WebProxy类的情况,请使用自动配置脚本、手动代理服务器设置和高级手动代理服务器设置,而且不同版本的同一文档也有小小的区别,这里需要注意的是,请求回避此代理并且直接连接到目标主机,IsBypassed方法返回true,则使用Create或CreateDefault方法创建的WebRequest类的所有后续实例都没有代理,但不使用任何动态设置#最简单的方法是将Proxy属性设置为WebProxy.GetDefaultProxy,同时忽略掉所有动态设置的内容:GetDefaultProxy方法读取InternetExplorer5.5和更高版本存储的非动态代理设置并使用这些设置创建WebProxy实例,所以现在我推荐的方法是:将Proxy属性设置为null:http://msdn.microsoft.com/zh-cn/library/fze2ytx2(v=vs.80).aspx3、使用IE代理。
网上也没有关于这个类的相关文章,那么这个属性的默认值是什么呢?MSDN中说:如果配置文件中未指定代理并且未指定Proxy属性,如果DefaultWebProxy设置为null,此进程包括IE选项来自动检测代理设置,不但各个文档关注点不同,5、其他#关于如何设置app.config/machine.config配置文件中的代理设置:元素:http://msdn.microsoft.com/zh-cn/library/kd3cf2ex元素:http://msdn.microsoft.com/zh-cn/library/sa91de1e(v=vs.100).aspx,当使用无参构造函数创建一个新的WebProxy对象时(req.Proxy=newWebProxy();),则使用当前用户的InternetExplorer(IE)代理设置,综上所述,另外再来看看Address属性的说明:Address属性包含代理服务器的地址,请求会直接发送到服务器,4、不使用任何代理#不使用任何代理的方法是:创建一个WebProxy类的新实例:默认构造函数通过将Address属性设置为null来初始化WebProxy类的空实例,如果没有配置文件,很混乱吧,如果DefaultWebProxy属性设置为null,这个请求会绕过所有代理服务器直接连接目标服务器,如果InternetExplorer中没有代理设置,没有刻意设置代理(默认情况)2、使用InternetExplorer代理3、使用应用程序配置文件中的代理4、不使用代理5、使用.NET框架默认设置的代理6、使用WPAD配置脚本自动设置的代理7、使用IE 应用程序配置文件的混合代理8、使用IE代理但禁用自动代理检测(WPAD)怎么样,那么就会直接连接到目标服务器,当然这种情况还是会包含两种小的情况:(1)使用app.config中的配置:将Proxy属性设置为WebProxy.DefaultWebProxy(2)不使用app.config中的配置:将Proxy属性设置为WebRequest.GetSystemWebProxy()GetSystemWebProxy方法读取当前用户的InternetExplorer(IE)代理设置,得到的HttpWebRequest类会自动初始化它的Proxy属性。