早上下個東西,半天不動,火冒三丈,我可是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是到哪去了???
來個大神解答一下...
要是能看源碼就好了...
