我想为.NET构建一个代理模块,但是我在将头从当前请求复制到新请求时遇到问题。我正在设置新请求的标题,因为我希望代理支持SOAP请求。这是我的代码的一部分。我可以发布一切,如果需要,但这是一个似乎与我有这个问题的唯一部分:需要帮助HttpWebRequest对象
HttpApplication app = (HttpApplication)sender; // sender from context.BeginRequest event
HttpRequest crntReq = app.Request; // set a reference to request object for easier access
HttpWebRequest proxyReq = (HttpWebRequest)HttpWebRequest.Create(crntReq.Url.AbsoluteUri);
// parse headers from current httpcontext.request.headers and add each name->value to the
// new request object
foreach (string header in crntReq.Headers)
{
proxyReq.Headers.Add(header, crntReq.Headers[header]); // throws exception :(
}
当我的代码打foreach循环,它抛出的头一个异常.Add功能。为了安全起见,我假定该集合具有访问限制。看起来,一些标头值可以通过HttpWebRequest对象本身的属性来访问。然而在这种情况下,我宁愿摆脱抽象并手动设置属性。那我收到的例外是:
{“这头必须使用适当的属性进行修改\ r \ n参数名:名”}
预先感谢您的帮助,
CJAM