• <menu id="om4mw"><strong id="om4mw"></strong></menu>
  • <nav id="om4mw"><strong id="om4mw"></strong></nav>
    每一個網站背后都有一個故事!  會員中心 會員登錄   聯系我們 聯系我們   加入收藏 收藏百萬站   百萬學院 百萬學院  
     
     
    您當前位置:百萬站 > 樂園 > 百萬學院 > 編程知識
    »點此完善

    百萬站官網資料-HttpWebRequest問題:差點被HttpWebRequest搞死

    ⑺⑻⑼⑽勞S 圙 圚 L國 圌⒄⒅秘

    ⑺⑻⑼⑽勞S 圙 圚 L國 圌⒄⒅秘

    HttpWebRequest問題:差點被HttpWebRequest搞死

    最近改寫一支小程式關於C#程式要建立一個HTTP 連線 ,而

    C#程式要建立一個HTTP 連線 因此一定會有底下這行程式碼

    HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create( http://www.ourwords.cn );

    ........

    .....

    但是執行後卻發生超詭異的現象,就是出現底下錯誤訊息

    遠端伺服器傳回一個錯誤: (403) 禁止。Auth Error

    但是用IE 瀏覽器直接輸入網址 http://www.ourwords.cn 去連 又一切正常,屢試不爽怪哉怪哉,又不是農曆七月。

    --------------------------------------------------------------------------------

    後來生氣了透過抓網路封包的工具看就究竟,這裡真的要感謝Ethereal 軟體(現在變成wireshark) 確定一下封包的流向!!不看還好 一看就發現問題所在了

    由Ethereal 的畫面得知程式並沒有去跟blog.xuite.net的IP 210.242.17.198 連線

    倒是去跟一個很詭異的IP連線(這IP 從來沒看過)

    且明明nslookup blog.xuite.net

    得到的結果IP如下: 也是210.242.17.198

    Non-authoritative answer:
    Name:   blog.xuite.net
    Address:  210.242.17.198

    而電腦裡的etc 檔也沒有額外設定

    但是程式連結到的IP 卻是一個詭異!!  不是連到210.242.17.198

    想破頭的觀察與仔細思考後都已經快要投降了 其中還找了一位博士與碩士前來解釋這怪異的現象....

    最後才發現這個IP 是Proxy Server

    怪了!

    難道C# HttpWebRequest 程式會主動參考IE 裡面的Proxy 設定??

    經過實驗!! 沒錯確實會

    中文的翻譯 HttpWebRequest..::.Proxy 屬性

    Proxy 屬性會識別用來處理網際網路資源要求的 WebProxy 物件。若要指定不使用任何 Proxy,請將 Proxy 屬性設定為 GlobalProxySelection..::.GetEmptyWebProxy 方法所傳回的 Proxy 執行個體。

    本機電腦或應用程式組態檔可能會指定使用預設 Proxy。如果是指定 Proxy 屬性,Proxy 屬性中的 Proxy 屬性便會覆寫本機電腦或應用程式組態檔,而且 HttpWebRequest 執行個體將使用指定的 Proxy 設定。如果未在組態檔中指定 Proxy,而且也未指定 Proxy 屬性,HttpWebRequest 類別便會使用繼承自本機電腦之 Internet Explorer 的 Proxy 設定。如果未在 Internet Explorer 中設定 Proxy,要求便會直接傳送至伺服器。

    HttpWebRequest 類別會以繼承自 Internet Explorer 的萬用字元來剖析 Proxy 略過清單,不同於由 Internet Explorer 直接剖析的略過清單。例如,HttpWebRequest 類別會將 Internet Explorer 的 "nt*" 略過清單剖析為 "nt.$" 規則運算式。這種行為不同於 Internet Explorer 的原生行為。因此 "http ://int x x " 這個 URL 會略過使用 HttpWebRequest 類別的 Proxy,卻不會略過使用 Internet Explorer 的 Proxy。

    因此寫了一段程式來驗證一下是不是有參考IE Proxy

    IWebProxy proxy = objRequest.Proxy;
    // Print the Proxy Url to the console.
    if (proxy != null)
    {
       Console.WriteLine("Proxy: {0}", proxy.GetProxy(objRequest.RequestUri));
    }
    else
    {
       Console.WriteLine("Proxy is null; no proxy will be used");
    }

    結果確實把IE 裡面設定的Proxy 抓出來!!且程式確實會參考此Proxy,因此程式未來如果要透過Proxy上網應該只要把IE Proxy設定好就好

    不用再透過程式HttpWebRequest.Proxy 屬性

     objRequest.Proxy = new WebProxy( "your_proxy", "port");
    --------------------------------------------------------------------------------

    但是如果我的程式不要被這IE 裡面設定的Proxy 打亂呢??

    該怎麼辦??

    還好Automatic Proxy Detection 這裡就有答案了!!!原來只要在程式裡面宣告request.Proxy = null;

    就可以了

    因此最後的程式就會變成

    HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(http://www.ourwords.cn);
    objRequest.Proxy = null;

    ....

    ...

    這樣程式就不會被IE Proxy 所影響摟!!  以上血淚分享的資訊供大家參考.


    Bai Wan Zhan . Com
    上一站:  RegexOptions屬性選項說明
    當前推薦網站:  HttpWebRequest問題:差點被HttpWebRequest搞死
    下一站:  不聽話的HttpWebRequest.Timeout屬性


    申明:本資料由百萬站會員提供,轉載請注明出處,資料來源百萬站網站知識庫:http://www.yepbrands.com/site/t121030/.
    HttpWebRequest問題:差點被HttpWebRequest搞死 感謝您的支持!

    復制本頁網址,與您QQ/MSN上的好友分享,就是您對百萬站最大的支持!
    踩踩此網站0
    支持此網站0
    (提示:頂到百萬站首頁,分享給更多網友!)  
    現在有1人對'本文'發表評論 ?查看全部評論
    1樓 999 [222.216.190.*] 發表于 2016/06/22/ 05:24:00
    666

    您的姓名: * 可選項,留空即為匿名發表
    評論內容:
    剩余字數:  * 按 Ctrl + Enter 發送.
               
    百萬站溫馨提示:資料由百萬站會員自行發布,請大家自辯真偽;評論只需提交一次,請耐心等候審核通過,方可顯示.
    »網友留言(1)

    HttpWebRequest問題:差點被HttpWebRequest搞死

    貢獻者:web006點擊數: 累積有19388人瀏覽
    所屬類別:編程知識主頁標簽:
    參考網址:http://www.yepbrands.com/site/t121030
    導航目錄:樂園 > 百萬學院 > 編程知識
    內容簡介:HttpWebRequest問題:差點被HttpWebRequest搞死 最近改寫一支小程式關於C#程式要建立一個HTTP 連線 ,而 C#程式要建立一個HTTP 連線 因此一定會有底下這行程式碼...
    2022,與百萬網友攜手打造百萬站!
    百萬站-百萬優秀網站的大本營!我們深信:每一個優秀網站的背后都有一個值得我們解讀的故事。
    合 作 伙 伴
    黄色大片
  • <menu id="om4mw"><strong id="om4mw"></strong></menu>
  • <nav id="om4mw"><strong id="om4mw"></strong></nav>