HTTPWebRequest и ответ, как показать прогресс чанкованного ответа
В настоящее время я использую HttpWebRequest и HttwebResponse.
Некоторые ответы разделены на части, а в ответе длина контента равна -1, что соответствует ожидаемому.
У меня вопрос, как я могу узнать размер ответа, чтобы показать прогресс?
В настоящее время у меня есть этот код, который обычно работает contentLength, если ответ есть.
If response.ContentEncoding = "gzip" Then
remoteStream = New IO.Compression.GZipStream(response.GetResponseStream(), IO.Compression.CompressionMode.Decompress)
Else
remoteStream = response.GetResponseStream()
End If
localStream = IO.File.Create(localFilename)
'Declare buffer as byte array
Dim myBuffer As Byte()
'Byte array initialization
ReDim myBuffer(1024)
Dim bytesRead As Integer
bytesRead = remoteStream.Read(myBuffer, 0, 1024)
Do While (bytesRead > 0)
localStream.Write(myBuffer, 0, bytesRead)
bytesProcessed += bytesRead
Debug.Print(String.Concat("Download Progress: ", ((bytesProcessed / contentLength) * 100).ToString))
bytesRead = remoteStream.Read(myBuffer, 0, 1024)
Loop
localStream.Close()