키워드를 기반으로 Twitter에서 트윗을 읽는 앱이 있습니다. 이러한 키워드는 주기적으로 바뀔 수 있으며 키워드가 닫히면 스트림을 닫고 다시 열어야합니다. 스트림을 아무 문제없이 열 수 있지만 스트림을 닫으려고 할 때 문제가 있습니다. 다음은 몇 가지 예제 코드입니다.닫기에서 스트림 판독기
try
{
response = (HttpWebResponse)request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
WriteLogMessage("Stream open - entering loop");
while (true)
{
if (count == 10) break;
count++;
string tweet = reader.ReadLine();
Console.Write(tweet);
}
WriteLogMessage("Exited loop");
}
/**** Program seems to freeze and never gets past this point ****/
WriteLogMessage("Reader disposed");
}
WriteLogMessage("Stream disposed");
}
catch (Exception ex)
{
WriteLogMessage(ex.Message);
}
finally
{
if (response != null)
response.Dispose();
WriteLogMessage("Response closed");
}
이 코드는 내 win7 (x64) 시스템에서 올바르게 실행됩니다. 그러나 서버 2008 또는 서버 2012 (둘 다 x64)에 배포하면이 고정 동작이 발생합니다. 트위터에 필요한 헤더 이외의 HttpWebRequest에 매개 변수를 설정하지 않습니다. 누구든지 무슨 일이 벌어지고 있는지에 대해 어떤 생각을 가지고 있습니까?
한'using' 문을보십시오 :'사용 (위해 StreamReader 리더 = 새에서는 StreamReader (응답. GetResponseStream()))'. 문제는 동일한 스트림을 두 번 닫음으로써 발생한다고 생각합니다. –
카운트 란 무엇이며 어디에 정의되어 있습니까? 또한,'reader.ReadLine'의 줄을'reader.ReadToEnd(); '로 바꾸지 마십시오. – MethodMan
@DJKRAZE OP는 [Twitter의 스트리밍 API] (https://stream.twitter.com/1.1/statuses)를 사용하는 것 같습니다. /sample.json) .... 결코 끝내지 않는 .... – I4V