October 8, 2010

使用WebClient讀取資料出現403錯誤訊息

今天在測試讀取客戶端某支xml時,透過瀏覽器存取都沒問題,可以正常顯示資料。但透過WebClient讀取卻回傳了HTTP 403的錯誤訊息,猜想可能是被server端的防火牆給擋掉了,瀏覽器能讀取應該是有送出防火牆認可的HTTP header,所以應該只要能模擬瀏覽器送出的header應該就可以解決這個問題了。

去古哥爬了一下後發現有網友也有相同問題,解決的方式可以在WebClient讀取資料前新增模擬瀏覽器的header如下
WebClient client = new WebClient();
client.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;");

No comments: