对初始HttpWebResponse.GetResponseStream()进行调用并读取流后,该流已完成并且无法重用。有没有一种方法可以检查WebResponse而不影响.NET中的基础响应流?
我有一种情况,我需要检查响应的内容,如果它是某个数据,则获取另一个页面,然后传递新的响应。否则,按原样传递原始响应。唯一的问题是,在检查响应以检查这个“特殊数据”之后,该响应对下游代码没有好处。
对于下游代码,我想到的唯一方法是创建HttpWebResponse的派生类,并以某种方式缓存数据流,然后将该缓存流传递到行而不是初始流。我不确定这是否可行,因为我没有进一步研究它。
有没有其他方法来处理这样的情况?
+1推荐WebClient。太多的人使用WebRequest和WebResponse,因为他们不知道WebClient,它会在单个语句中获取和发布请求。 – Chris 2010-10-27 16:53:18
我同意人们应该更多地使用WebClient。但就我而言,我无法使用WebClient,因为我需要自己构建请求。 WebClient适用于简单的事情,但不适合复杂的请求。而且请求很复杂,在客户端处理这个问题不仅麻烦 - 即重新创建另一个请求。我所追求的是尽可能对客户端代码透明。 – 2010-10-27 20:45:54
加不会这种方法要求你做两个不同的调用?检查后再将字符串转换回流可能会更好。 – BigOmega 2012-09-14 16:09:29