引用
因为涉及到代理的各种情况,WebRequest和WebProxy类的文档写的相当复杂,不但各个文档关注点不同,而且不同版本的同一文档也有小小的区别,网上也没有关于这个类的相关文章。
直接进入正题,对于需要使用WebProxy类的情况,大致分如下几种:
1、创建WebRequest的时候,没有刻意设置代理(默认情况)
2、使用Internet Explorer代理
3、使用应用程序配置文件中的代理
4、不使用代理
5、使用.NET框架默认设置的代理
6、使用WPAD配置脚本自动设置的代理
7、使用IE+应用程序配置文件的混合代理
8、使用IE代理但禁用自动代理检测(WPAD)
怎么样,很混乱吧。当然上面这些很多都是重复的,不过基本已经涵盖了所有可能遇到的情况,下面让我来一个一个说说:
1、默认情况下的代理设置
当创建一个新的HTTP请求时(WebRequest.Create方法),得到的HttpWebRequest类会自动初始化它的Proxy属性,那么这个属性的默认值是什么呢?MSDN中说:
如果配置文件中未指定代理并且未指定 Proxy 属性,则 HttpWebRequest 类使用从本地计算机上的 Internet Explorer 中继承的代理设置。 如果 Internet Explorer 中没有代理设置,请求会直接发送到服务器。