Как изменить заголовки запроса в c #, ASP .NET - PullRequest
2 голосов
/ 28 ноября 2009

Я работаю над проектом ASP .NET mVC, и мне нужно изменить HttpHeaders. см. следующий фрагмент кода:

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Параметр имени: имя.

Кто-нибудь предлагает решение для этого

Ответы [ 2 ]

6 голосов
/ 28 ноября 2009

Вы должны установить значения заголовков, которые имеют соответствующее свойство в объекте через свойство. Например, свойство UserAgent предоставляется для установки агента пользователя. Вы должны изменить заголовок следующим образом:

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

Конечно, вы должны установить значения заголовков перед вызовом GetResponse.

4 голосов
/ 28 ноября 2009

В дополнение к тому, что говорит @Mehrdad Afshari, ваша переменная req должна иметь тип HttpWebRequest. WebRequest (абстрактный родительский класс) не имеет свойств UserAgent и Accept.

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

Кроме того, я просто хочу убедиться, что вы действительно пытаетесь изменить заголовки в запросе, отправляемом из приложения MVC, а не в ответе, отправляемом обратно из приложения MVC. То, как вы написали код, немного сбивает с толку, так как вы устанавливаете заголовки после получения ответа, что не сработает, и потому что вы специально ссылаетесь на MVC. Если вы создаете WebRequest на сервере, на самом деле не имеет значения, используете ли вы WebForms или MVC, процесс все тот же.

Если окажется, что вы пытаетесь изменить формат ответа, который вы отправляете обратно, оставьте комментарий и дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...