2011-06-22 120 views
0

我有一个web服务x,当处理请求到它时,它会生成一个请求到另一个webservice y并使用响应(可能包含图像或文本)从y作为原始请求的响应。我有下面的代码来打电话,但我怎么设置响应?ASP.NET重定向请求

public void ProcessRequest (HttpContext context) 
{ 
    string uri2 = String.Format(CultureInfo.InvariantCulture, "{0}/{1}", Site2Root, context.Request.Url.PathAndQuery); 

    HttpWebRequest webRequest = (HttpWebRequest)System.Net.WebRequest.Create(uri2); 
    HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); 
    ... 
} 
+0

为什么不只是创建一个返回与webservice'y'相同类型的webservice方法? – Jay

+0

这将如何帮助?你的意思是真的在做'重定向'?如何做到这一点? – tom

+0

这看起来很像一个HttpHandler。如果你想创建一个web服务,那么实际上创建一个,然后在'y'中添加一个对web服务的引用。从'x'调用'y'并返回它的'响应。但它听起来更像是你寻找代理而不是重定向。 – Jay

回答

0

您将首先需要通过调用GetResponse来执行webRequest。然后,您可以调用Response.BinaryWrite()或Response.Write与您从第一次调用返回的任何内容。这是代理代码的example项目。这不是最好的例子,但它应该让你开始。

+0

但是,我怎么能得出来自web服务y的响应,假设数据可能是二进制数据或文本数据。 – tom

+0

这听起来像你只需要代理响应并返回你得到的任何东西。如果你适当地设置标题,它应该可以正常工作。 – bkaid

+0

抱歉,你的意思是'代理响应'?有没有一种方法可以帮助你做到这一点? – tom