【发布时间】:2015-01-31 10:46:59
【问题描述】:
我尝试添加新标题的方法:
request.Headers.GetType().InvokeMember("ChangeInternal",
BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod,
Type.DefaultBinder, request.Headers, new object[] { "Connection", "keep-alive" }
);
实际上,它将keep-alive 标头添加到 Connection 中,但它不会替换旧的标头。所以我得到Connection: Keep-Alive,keep-alive。
我尝试使用反射进行试验,但没有任何效果。
还有其他类似的问题,但没有解决方案。
【问题讨论】:
-
你为什么通过反射而不是直接在
request对象上调用它? -
为什么需要这样做?根据 HTTP 规范,标头不应区分大小写。
-
达林,在使用普通浏览器时它会发送小写的keep-alive,而在使用webrequests时它会发送大写的keep-alive。在检查网站日志时,它可以很容易地看到这一点。所以我希望标题与我的例如 firefox 浏览器完全一样。
-
我使用了以下解决方案...stackoverflow.com/questions/9650236/…
标签: c# httprequest