我正在尝试在IIS 6上创建一个应用程序(或Web服务),它将使用修改后的凭据将SOAP请求转发到另一个Web服务应用程序。
现在我在我的应用的Page_Load中有这样的东西:
HttpWebRequest newRequest = (HttpWebRequest)WebRequest.Create(newUrl);
newRequest.ContentType = original.ContentType;
newRequest.ContentLength = original.ContentLength;
newRequest.Method = original.HttpMethod;
newRequest.UserAgent = original.UserAgent;
newRequest.Credentials = new NetworkCredential("login","password","domain");
HttpWebResponse response = (HttpWebResponse)newRequest.GetResponse();
问题是最后一行崩溃了,因为ContentLength是> 0并且我没有打开RequestStream,因为我不知道如何从oryginal请求中获取它。
我没有提到这个问题“如何从HttpWebRequest获取SOAP请求”,因为我相信有一个更简单的解决方案,我正在尝试做什么。也许是像Java那样的某种请求调度程序。
非常感谢任何帮助。
答案 0 :(得分:1)
SOAP请求没有什么神奇之处 - 毕竟它只是HTTP。您应该可以使用以下内容复制请求正文:
Context.Request.InputStream.CopyTo(newRequest.GetRequestStream());
此外,您应该确保复制可能在原始请求中设置的所有其他重要HTTP标头。