C# - 将 responseStream 写入 context.response.outputstream

标签 c# asp.net

我们的 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/

相关文章:

c# - 如何正确地将CRLF(Environment.NewLine)添加到FileStream中?

c# - ASP.NET - 在页面加载时从 QueryString 值设置 SqlDataSource 参数值的最佳实践?

c# - 在Unity中有没有快速调试手机振动的方法?

c# - 在 asp.net 中缓存(输出)?

c# - Paypal 与 ASP.NET/C# 集成

c# - 我需要帮助翻译这部分 ECMAScript 语法吗?

C# 列出两个引用?

c# - bootStrap 菜单添加的元素无法访问后面的 asp.net 代码

asp.net - 我可以将 asp.net 4.0 与经典 asp 结合使用,还是可以将经典 asp 转换为 asp.net?

asp.net - 如何从ashx文件获取QueryString?