gpt4 book ai didi

c# - 执行 IHttpHandler 到 MemoryStream

转载 作者:行者123 更新时间:2023-11-30 17:04:33 34 4
gpt4 key购买 nike

我想使用类似 HttpServerUtility.Execute 的东西执行 IHttpHandler并将处理程序响应写入 MemoryStream然后可以将其解析为 http 响应(在功能上,我想访问 header 和返回的内容)。

当前 HttpServerUtility.Execute方法有一个 TextWriter 的参数对象(可以是 StringWriter 对象)但这仅适用于返回文本/字符串正文的请求,而且我无法读取响应的内容类型 header (例如文本/CSS 响应)。如果说我有一个我想执行的处理程序输出图像 StringWriter将不起作用,因为它处理二进制数据。

基本上我想执行一个IHttpHandler (可能是一个 System.Web.UI.Page )在另一个 IHttpHandler 里面并将响应存储在 MemoryStream 中.

如有任何帮助,我们将不胜感激。

谢谢。

最佳答案

也许您可以直接调用 IHttpHandler 对象上的 ProcessRequest 方法,然后将您自己的 http 上下文和您自己的响应对象传递给它。我不确定,但我认为 http 响应的 BinaryWrite 方法使用传递到其构造函数中的 TextWriter 对象的输出流。因此,如果您在 TextWriter 中设置了内存流,则可以将其用作输出。

所以:

  • 创建内存流
  • 创建 StreamWriter 并将内存流传递给构造函数
  • 创建一个 HttpResponse 并将创建的 StreamWriter 传递给它
  • 使用已创建的 HttpResponse 和已创建或当前的 http 请求创建 HttpContext
  • 调用 IHttpHandler.ProcessRequest

关于c# - 执行 IHttpHandler 到 MemoryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378391/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com