Dev*_*per 1 .net c# webrequest httpwebresponse streamreader
如何两次读取 HttpWebResponse?有可能吗?
我的代码不起作用,也respStream.Position = 0;没有帮助。
有什么线索吗?
var data = (HttpWebRequest)WebRequest.Create(url);
var response = (HttpWebResponse)data.GetResponse();
var respStream = response.GetResponseStream();
string responseText;
using (var reader = new StreamReader(respStream, encoding))
{
responseText = reader.ReadToEnd().Trim();
}
// Do something and read it again
using (var reader = new StreamReader(respStream, encoding))
{
responseText = reader.ReadToEnd().Trim();
}
Run Code Online (Sandbox Code Playgroud)
返回的类型response.GetResponseStream()是System.Net.ConnectStream。如果您检查此流的属性,CanSeek您将发现无法查找它,因此这意味着您无法重置它并再次读取它:
var typeOfStream = respStream.GetType(); // System.Net.ConnectStream
var canSeek = respStream.CanSeek; // false
Run Code Online (Sandbox Code Playgroud)
但是,当您将数据读取到字符串时,您已经拥有了数据,因此您可以使用它两次:
string responseText1, responseText2;
using (var reader = new StreamReader(respStream, encoding))
{
responseText1 = reader.ReadToEnd().Trim();
responseText2 = responseText1; // you get a copy of response
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1870 次 |
| 最近记录: |