分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

使用WebClient实现断点续传 重写

发布时间:2023-09-06 01:43责任编辑:顾先生关键词:Web

早上下个东西,半天不动,火冒三丈,我可是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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved