Ami*_*mit 4 c# namevaluecollection http-headers
我试图使用C#修改HTTP标头.我试图在Page preinit事件上操作Request.Headers.但是当我尝试向Headers设置任何内容时,我得到PlatformNotSupportedException.由于我们无法将新的NameValueCollection设置为Reqeust.Headers,因此我尝试使用以下代码设置该值:
Request.Headers.Set(HttpRequestHeader.UserAgent.ToString(), "some value");
Run Code Online (Sandbox Code Playgroud)
不知道如何实现这一目标?
Kay*_*Kay 11
试试这个:
HttpContext.Current.Request.Headers["User-Agent"] = "Some Value";
Run Code Online (Sandbox Code Playgroud)
编辑: 这可能是你的原因:http: //bigjimindc.blogspot.com/2007/07/ms-kb928365-aspnet-requestheadersadd.html
其中有一个代码片段,它为Request.Headers添加了一个新标头.在Windows 7 32位操作系统上验证.
但您可能想要替换该行:
HttpApplication objApp = (HttpApplication)r_objSender;
Run Code Online (Sandbox Code Playgroud)
有:
HttpApplication objApp = (HttpApplication)HttpContext.Current.ApplicationInstance;
Run Code Online (Sandbox Code Playgroud)
编辑: 要替换现有的标头值,请使用:
t.InvokeMember("BaseSet", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, headers, new object[] { "Host", item });
Run Code Online (Sandbox Code Playgroud)
其中"主机"是标题名称.