Вам нужно выйти из цикла, сейчас ничего не сказано, чтобы он выходил.
While True
If stream.CanRead Then
Dim len As Integer = stream.Read(buffer, 0, 2048)
If len > 0 Then
Dim text = encoder.GetString(buffer, 0, len)
Else
Exit While
End If
Else
Exit While
End If
End While
Кроме того, поток может получать информацию только частями.Вам следует объединить данные.
Dim text As String = ""
While True
If stream.CanRead Then
Dim len As Integer = stream.Read(buffer, 0, 2048)
If len > 0 Then
text &= encoder.GetString(buffer, 0, len)
Else
Exit While
End If
Else
Exit While
End If
End While
Это может быть рефакторинг
Dim streamData As New StringBuilder
While stream.CanRead
Dim len As Integer = stream.Read(buffer, 0, 2048)
If len > 0 Then
' There is the possibility that a Unicode character be split
streamData.Append(encoder.GetString(buffer, 0, len))
Else
Exit While
End If
End While