我们的 ASP.net 应用程序需要将一些请求中继到另一台服务器,获取数据并提供数据。我们可以将数据下载到文件中并提供服务,或者直接提供从源服务器到客户端的响应流。数据包括js/css/images/font files/mp3等
HttpWebRequest forwardRequest = (HttpWebRequest)WebRequest.Create(remoteUrl);
forwardRequest.ContentType = context.Request.ContentType;
forwardRequest.UserAgent = context.Request.UserAgent;
forwardRequest.Method = context.Request.HttpMethod;
//add post check
HttpWebResponse newResponse = (HttpWebResponse)forwardRequest.GetResponse();
MemoryStream ms = new MemoryStream();
newResponse.GetResponseStream().CopyTo(ms);
context.Response.ContentType = newResponse.ContentType;
context.Response.StatusCode = 200;
context.Response.BinaryWrite(ms.GetBuffer());
ms.Close();
context.Response.Flush();
context.Response.Close();
context.Response.End();
如何直接将 newResponse.GetResponseStream()
传递给 context.Response.OutputStream
。
最佳答案
你不能直接传递流,但你可以方便地将一个流写入另一个(这将在内部创建一个读/写循环):
sourceStream.CopyTo(destinationStream);
关于C# - 将 responseStream 写入 context.response.outputstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39075438/