2009-11-28 54 views
2

我正在開發一個ASP .NET mVC項目&我必須更改HttpHeaders。看到foolowing代碼段:如何修改C#中的請求頭,.NET .NET

WebRequest req= HttpWebRequest.Create("myURL"); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

req.Headers.Add("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)"); 
req.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); 
req.Headers.Add("Accept-Language", "en-us,en;q=0.5"); 

這給出了一個例外即

此頭必須使用合適的屬性來修改\ r \ n參數名:名稱。

任何suggets解決方案,這

回答

4

除了@Mehrdad Afshari說的,你的req變量需要是HttpWebRequest類型。 WebRequest(抽象父類)沒有UserAgent和Accept屬性。

HttpWebRequest req = WebRequest.Create("http://...") as HttpWebRequest; 

而且,我只是想確保你真的想改變,你是從你的MVC應用程序發送,而不是正從你的MVC應用程序發回的響應的請求頭。你編寫代碼的方式有點令人困惑,因爲你在收到響應之後設置標題,這是行不通的,因爲你特別提到了MVC。如果您要在服務器上創建WebRequest,那麼使用WebForms還是MVC確實無關緊要,但過程依然如此。

如果事實證明您正在嘗試更改您要發回的回覆的格式,請留下評論並通知我。

+0

thnax它幫助我很多&解決我的問題。 – 2009-12-04 11:25:10

+0

HttpWebRequest request1 = WebRequest.Create(「paymentgatewayurl」)爲HttpWebRequest; (「User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64; rv:20.0)Gecko/20100101 Firefox/20.0」);我得到同樣的錯誤 – 2014-06-12 07:51:18

6

您應該設置有通過屬性的對象的相應屬性標頭值。例如,提供UserAgent屬性來設置用戶代理。您應該修改標題:

req.UserAgent = "Mozilla/5.0 ..."; 

當然,您應該在調用GetResponse之前設置標題值。