加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

有没有办法检查WebResponse而不影响.NET中的底层响应流?

发布时间:2020-12-16 06:54:07 所属栏目:asp.Net 来源:网络整理
导读:在调用初始HttpWebResponse.GetResponseStream()并读取流之后,该流完成并且无法重用. 我有一种情况,我需要检查响应的内容,如果它是某个数据,获取另一个页面,然后传递新的响应.否则,按原样传递原始响应.唯一的问题是,在检查了检查此“特殊数据”的响应后,该响
在调用初始HttpWebResponse.GetResponseStream()并读取流之后,该流完成并且无法重用.

我有一种情况,我需要检查响应的内容,如果它是某个数据,获取另一个页面,然后传递新的响应.否则,按原样传递原始响应.唯一的问题是,在检查了检查此“特殊数据”的响应后,该响应对下游代码没有好处.

我能想到的唯一方法是使下游代码透明,就是创建一个HttpWebResponse的派生类,并以某种方式缓存流式传输的数据,并将该缓存的流传递给行而不是初始流.我不确定这是否可行,因为我没有进一步调查.

有没有其他方法来处理这样的场景?

解决方法

这个怎么样:

using (var client = new WebClient())
{
    string result = client.DownloadString("http://www.foo.bar");
    // TODO: examine result as much as you wish
}

如果你不想将整个响应加载到内存中,你可以将它传递给一些解析函数,该函数将检查它一次并返回一个包含你感兴趣的所有属性的对象,这样你就可以像你一样检查这个对象了.希望.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读