2013-11-27 118 views
2

它可以正常瀏覽此頁面:http://www.litteraturmagazinet.se/arga-bibliotekstanten/boklogg/favorit-i-repris-9560835在常規瀏覽器中(例如Chrome)。HttpWebRequest.Create返回(500)內部服務器錯誤

但是,當我使用下面的代碼來獲取網站,我得到內部服務器錯誤(500)?

這是我使用的代碼(這在我已經嘗試了所有其他網頁的偉大工程):

HttpWebRequest request; 
WebResponse webresponse; 
request = (HttpWebRequest)HttpWebRequest.Create(url); 
webresponse = (HttpWebResponse)request.GetResponse(); 

唯一的例外是拋出的GetResponse。

我找到了這樣的例子:HttpWebRequest.GetResponse() returns error 500 Internal Server Error,但我不明白嗎?爲什麼沒有request.GetResponse與這個特定的網頁?我怎樣才能知道在頭文件中放置什麼(如果它稍後需要更新到不同版本,那將會很棒)?

+0

GetResponse()拋出什麼異常? – 48klocs

+0

500與其他任何迴應一樣好。如果你認爲服務器應該返回一些不同的東西 - 找出它的期望並適當地構建請求。一種方法是使用Fiddler並確保您的請求與瀏覽器發送的請求完全相同。 –

+0

附註:你是否真的從'Create'調用中得到這個異常?這很奇怪,因爲'Create'不應該撥打任何電話...... –

回答

6

我試過你的URL與wfetch沒有標題,我也得到了500。

您必須在請求的標題中設置適當的用戶代理。

HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com"); 
myHttpWebRequest.UserAgent=".NET Framework Test Client"; 
+0

非常感謝! – Banshee

相關問題