【问题标题】:Reading and rewriting a HttpResponse in a webservice在 Web 服务中读取和重写 HttpResponse
【发布时间】:2012-11-06 02:33:01
【问题描述】:

我有一个无法修改其源代码的第 3 方库 (C#/.NET)。这个第 3 方库有一个我调用的方法,它直接写入我的 webmethod 的 HttpResponse 对象。响应包含一个状态代码。该响应返回给客户端,一切正常。

但是,现在我有兴趣找出该方法写入响应对象的状态代码。在将响应返回给客户端之前,我想知道这一点,并在必要时根据我认为合适的方式重写响应。

所以我的问题基本上是我是否有办法读取响应对象的内容并覆盖它?并且要明确一点:我说的是服务器发送回客户端的响应,而不是服务器收到的作为请求结果的响应。

【问题讨论】:

  • 您是否正在调用任何方法/API?你有从库返回的响应对象吗?还是在asp.net服务器上注册了HttpHandler?你能显示一些代码吗?
  • 嗨,我定义了自己的 webmethod,它基本上只包含调用库中的一种方法。我将我的 Response 对象传递给这个方法。该方法构建一个 XmlDocument,然后调用 xml.Save(response.OutputStream) 将 XML 写入输出流。我希望能够在我自己的 webmethod 中知道将什么 xml 写入响应对象。
  • 与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.

标签: c# httpresponse


【解决方案1】:

假设您可以访问HttpResponse 对象,您可以使用StatusCode 属性获取和设置状态代码。

http://msdn.microsoft.com/en-us/library/system.web.httpresponse.statuscode.aspx

您还可以修改其他属性,例如Body,然后在您进行更改后调用BeginFlush() 将缓冲的响应发送到客户端。

【讨论】:

    【解决方案2】:

    通过注册 HttpModule 和实现事件来检查。粘贴参考链接以获取帮助。

    http://www.codeproject.com/Articles/30907/The-Two-Interceptors-HttpModule-and-HttpHandlers http://www.darkside.co.za/archive/2008/03/03/web-page-optmisation-using-httpmodule.aspx http://msdn.microsoft.com/en-us/library/ms227673.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 2021-02-06
      • 2022-08-09
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多