早上下个东西,半天不动,火冒三丈,我可是100M光纤。。。
WebClient、Httpclient、HttpWebRequest、WebRequest
我选了了WebClient因为他封装的够好
断点续传就是在请求头加入我需要接收的字节流段
Range:"bytes=100-200"
看到WebClient.Headers.Add()感觉还是蛮简单的
加入:
client1.Headers.Add(HttpRequestHeader.Range, "bytes=100-200");
但是报错,懵逼,百度一下 我就知道。
必须使用适当的属性或方法修改“Range”标头。
网上的套路是使用
HttpWebRequest.AddRange()方法;
注意:WebRequest类中并没有AddRange();HttpWebRequest是WebRequest的子类
WebClient中有一个可重写类
protected virtual WebRequest GetWebRequest(Uri address);
于是修改代码
public ?class WebHttpclientBase: WebClient ???{ ???????protected override WebRequest GetWebRequest(Uri address) { ???????????HttpWebRequest webRequest = WebRequest.CreateHttp(address); ???????????webRequest.AddRange(100, 200);//测试 勿怪... ???????????return webRequest; ???????} ???}
调用:
???????????WebHttpclientBase client1 = new WebHttpclientBase(); ???????????byte[] by = await client1.DownloadDataTaskAsync(Url);
问题:
监视截图
Headres的count为0???
那么rang是到哪去了???
来个大神解答一下...
要是能看源码就好了...
使用WebClient实现断点续传 重写
原文地址:https://www.cnblogs.com/AnAng/p/8482741.html