2010-05-08 132 views
9

從瀏覽器打開公共頁面正常工作。WebClient - 遠程服務器返回一個錯誤:(403)禁止

使用WebClient下載相同頁面拋出 - (403)禁止。

這是怎麼回事?

這裏被快速複製/粘貼例子(控制檯應用程序使用的)特定頁面的網頁:

try 
{ 
    WebClient webClient = new WebClient(); 
    string content = webClient.DownloadString("http://he.wikisource.org/wiki/%D7%A9%D7%95%D7%9C%D7%97%D7%9F_%D7%A2%D7%A8%D7%95%D7%9A_%D7%90%D7%95%D7%A8%D7%97_%D7%97%D7%99%D7%99%D7%9D_%D7%90_%D7%90"); 
} 
catch (Exception ex) 
{ 
    throw; 
} 
+0

你多久打一次電話這個網址?你可能會受到限制。 – Nix 2010-05-08 13:37:26

+0

我覺得並不多,在嘗試使用webclient之前,瀏覽器中的次數並不多。我現在已經從同一個網站上下載了更多的網頁,並且每次都很好。所以它看起來像這個頁面只是拋出錯誤?! – dzolnjan 2010-05-08 13:45:08

+1

該頁面可能正在查看用戶代理標題,並且因爲您沒有提供它而彈跳。 – 2010-05-08 13:59:28

回答

38

我只是跑提琴手看到響應嘗試過了,它返回用以下通知狀態碼。

Scripts should use an informative User-Agent string with contact information, or they may be IP-blocked without notice.

This works。

WebClient webClient = new WebClient(); 
    webClient.Headers.Add("user-agent", "Only a test!"); 

    string content = webClient.DownloadString("http://he.wikisource.org/wiki/%D7%A9%D7%95%D7%9C%D7%97%D7%9F_%D7%A2%D7%A8%D7%95%D7%9A_%D7%90%D7%95%D7%A8%D7%97_%D7%97%D7%99%D7%99%D7%9D_%D7%90_%D7%90"); 
+0

是的,工作,謝謝。 – dzolnjan 2010-05-08 14:41:03

+1

謝謝你 - 這對我沒有解決,但你讓我走上了一條軌道。作爲對後續措施的警告詞,請首先檢查您自己的安全實施。我忘記授予我的用戶執行下載的權利,並且正在接收(正確)403消息。無關的IIS服務器,客戶端,用戶代理或任何東西。 – 2015-06-08 15:14:17

+0

@TheSenator謝謝,在我的情況下它是IIS IP地址限制。 – joym8 2017-10-03 14:59:46

相關問題