大佬教程收集整理的这篇文章主要介绍了json – 跟踪HttpWebRequest和HttpWebResponse的进度,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Private Function InvokeShareFiLeoperation(ByVal requesturl As @R_616_10495@ng) As JObject Dim request As httpWebrequest = Webrequest.Create(requesturl) Dim response As httpWebResponse = request.GetResponse() Dim reader As StreamReader = New StreamReader(response.GetResponseStream()) Dim json As @R_616_10495@ng = reader.ReadToEnd() response.Close() Return JObject.Parse(json) End Function
由于某些操作有点长,我需要以某种方式跟踪他们正在进行的进度并且不知道如何进行.后来我打算使用这个进度并从中创建一个进度条.
(编辑)
顺便说一句,这是占用大部分时间的第二个代码行(下面),即跟踪操作.
Dim response As httpWebResponse = request.GetResponse()
作为Web请求,您可以先查找内容长度,然后使用缓冲区而不是ReadToEnd()读取响应流.这允许您在下载响应时计算进度并触发通知.
Dim request As httpWebrequest = Webrequest.Create(requesturl) Using response As httpWebResponse = request.GetResponse() Dim contentLength As Long = response.ContentLength Dim bytesReceived As Long Dim bufferLength as Integer = 8192 Dim buffer(bufferLength) As Char Dim sb As new StringBuilder Using reader As StreamReader = New StreamReader(response.GetResponseStream()) Do Dim bufferedCount As Integer = reader.Read(buffer,bufferLength) sb.Append(buffer,bufferedCount) bytesReceived += bufferedCount Console.WriteLine(bytesReceived / contentLength * 100 & "%") Loop While bytesReceived < contentLength End Using Return JObject.Parse(sb.To@R_616_10495@ng) End Using
显然,您可以使用进度更新功能替换Console.WriteLine或者调用SignalR集线器来更新网页,您可以尝试使用缓冲区大小来查看哪种方法最适合您.
以上是大佬教程为你收集整理的json – 跟踪HttpWebRequest和HttpWebResponse的进度全部内容,希望文章能够帮你解决json – 跟踪HttpWebRequest和HttpWebResponse的进度所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。