使用WebClient实现断点续传 重写
早上下个东西,半天不动,火冒三丈,我可是100M光纤。。。
WebClient、Httpclient、HttpWebRequest、WebRequest
我选了了WebClient因为他封装的够好
断点续传就是在请求头加入我需要接收的字节流段
Range:"bytes=100-200"
看到WebClient.Headers.Add()感觉还是蛮简单的
加入:
1 | client1.Headers.Add(HttpRequestHeader.Range, "bytes=100-200" ); |
但是报错,懵逼,百度一下 我就知道。
1 | 必须使用适当的属性或方法修改“Range”标头。 |
网上的套路是使用
HttpWebRequest.AddRange()方法;
1 2 3 4 | 注意: WebRequest类中并没有AddRange(); HttpWebRequest是WebRequest的子类 |
1 | WebClient中有一个可重写类 |
1 | protected virtual WebRequest GetWebRequest(Uri address); |
于是修改代码
1 2 3 4 5 6 7 8 | public class WebHttpclientBase: WebClient { protected override WebRequest GetWebRequest(Uri address) { HttpWebRequest webRequest = WebRequest.CreateHttp(address); webRequest.AddRange(100, 200); //测试 勿怪... return webRequest; } } |
调用:
1 2 | WebHttpclientBase client1 = new WebHttpclientBase(); byte [] by = await client1.DownloadDataTaskAsync(Url); |
问题:
监视截图
Headres的count为0???
那么rang是到哪去了???
来个大神解答一下...
要是能看源码就好了...
标签:
使用WebClient实现断点续传
, 重写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)