I have created a httpwebrequest connection to a streaming API after trying a tTCPClient which just never ended up working. My concern is whether my code is correct and that I am actually reading in new data and that the connection is maintained. Initially I had been reading into a buffer and just loaded everything into a file after max size, but figured it would be simpler to read a line, since each entry was being sent delimited by line feeds.
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
It looks like I am continuously reading and not sure if I am reading redundant data here. Also another question is that if I were to use a thread to appendToFile, would that maintain the connection to the stream?
You're misusing CanRead. Best have a look at the documentation again. CanRead only tells you if a stream is CAPABLE of being read, not if it has data and so should never be used in a loop condition.
Also, you need to Close the stream when you finish with it.