2016-08-27 4 views
0

HttpWebResponse twise를 읽는 방법? 전혀 가능합니까?HttpWebResponse를 두 번 읽는 방법

내 코드가 작동하지 않으며 respStream.Position = 0;가 도움이되지 않습니다.

실마리, pls?

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(); 
} 
+1

왜 두 번 읽으시겠습니까? 한 번 읽은 다음 결과를 두 번 참조하십시오. –

답변

2

response.GetResponseStream()에서 반환 유형은 System.Net.ConnectStream입니다. 당신이 문자열로 데이터를 읽을 때

var typeOfStream = respStream.GetType(); // System.Net.ConnectStream 
var canSeek = respStream.CanSeek;   // false 

그러나, 당신이 이미 가지고 : 당신이 당신이 탐색했습니다 수없는 것을 볼이 스트림의 재산 CanSeek을 확인, 그렇다면 이것은 당신이 그것을 재설정하고 다시 읽을 수 없습니다 의미 데이터를 두 번 사용할 수 있습니다.

string responseText1, responseText2; 
using (var reader = new StreamReader(respStream, encoding)) 
{ 
    responseText1 = reader.ReadToEnd().Trim(); 
    responseText2 = responseText1; // you get a copy of response 
} 
관련 문제