使用httpwebrequest进行流连接

时间:2012-04-03 19:47:14

标签: .net vb.net httpwebrequest twitter http-streaming

在尝试了一个从未结束工作的tTCPClient之后,我创建了一个到流API的httpwebrequest连接。我担心的是我的代码是否正确,我实际上是在读新数据并且是否保持了连接。最初我一直在读取缓冲区并在最大尺寸之后将所有内容加载到文件中,但认为读取一行更简单,因为每个条目都是通过换行符分隔的。

rStream = webrequest.GetResponse().GetResponseStream
rStream = New GZipStream(rStream, CompressionMode.Decompress)
If rStream.CanRead then
   Dim bufferPit(8100) as byte
   Do
      Dim dStream as StreamReader = New StreamReader(rStream)
      While not dStream.EndOfStream
          rData = dStream.ReadLine()
          pTools.appendToFile(rData)
      End While
   .....//some other exception handling
   Loop While rStream.CanRead

看起来我一直在阅读,不知道我是否在这里阅读冗余数据。另一个问题是,如果我使用一个线程来追加ToToFile,那会保持与流的连接吗?

1 个答案:

答案 0 :(得分:1)

你在滥用CanRead。最好再看看文档。 CanRead只告诉您流是否能够被读取,而不是它是否有数据,所以永远不应该在循环条件下使用。

此外,您需要在完成后关闭流。