引用
因為涉及到代理的各種情況,WebRequest和WebProxy類的文檔寫的相當復(fù)雜,不但各個文檔關(guān)注點不同,而且不同版本的同一文檔也有小小的區(qū)別,網(wǎng)上也沒有關(guān)于這個類的相關(guān)文章。
直接進入正題,對于需要使用WebProxy類的情況,大致分如下幾種:
1、創(chuàng)建WebRequest的時候,沒有刻意設(shè)置代理(默認情況)
2、使用Internet Explorer代理
3、使用應(yīng)用程序配置文件中的代理
4、不使用代理
5、使用.NET框架默認設(shè)置的代理
6、使用WPAD配置腳本自動設(shè)置的代理
7、使用IE+應(yīng)用程序配置文件的混合代理
8、使用IE代理但禁用自動代理檢測(WPAD)
怎么樣,很混亂吧。當然上面這些很多都是重復(fù)的,不過基本已經(jīng)涵蓋了所有可能遇到的情況,下面讓我來一個一個說說:
1、默認情況下的代理設(shè)置
當創(chuàng)建一個新的HTTP請求時(WebRequest.Create方法),得到的HttpWebRequest類會自動初始化它的Proxy屬性,那么這個屬性的默認值是什么呢?MSDN中說:
如果配置文件中未指定代理并且未指定 Proxy 屬性,則 HttpWebRequest 類使用從本地計算機上的 Internet Explorer 中繼承的代理設(shè)置。 如果 Internet Explorer 中沒有代理設(shè)置,請求會直接發(fā)送到服務(wù)器。