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()

0 ответов

Другие вопросы по тегам