繁体   English   中英

如何在c#,ASP .NET中修改请求标头

[英]How to modify request headers in c#,ASP .NET

我正在开发一个ASP .NET mVC项目,我必须更改HttpHeaders。 看到foolowing代码片段:

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 \\ nParameter name:name。

有人建议解决它

您应该通过属性设置在对象中具有相应属性的标头值。 例如,提供UserAgent属性来设置用户代理。 你应该修改标题:

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

当然,您应该在调用GetResponse之前设置标头值。

除了@Mehrdad Afshari所说的,你的req变量必须是HttpWebRequest类型。 WebRequest(抽象父类)没有UserAgent和Accept属性。

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

另外,我只是想确保您真正尝试更改从MVC应用程序发送的请求的标头,而不是从MVC应用程序发回的响应。 您编写代码的方式有点令人困惑,因为您在收到响应后设置了标头,这将无效,并且因为您专门引用了MVC。 如果您在服务器上创建WebRequest,无论您使用的是WebForms还是MVC,这个过程都是一样的。

如果事实证明您正在尝试更改要发送回复的回复格式,请发表评论并告知我们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM