功能:从特定的URI请求文件(.Net FrameWork目前支持http:、https:和file:标识符开头的URI)。
特点:功能比较简单。
用法:
1、使用WebClient下载文件。
范例一:使用WebClient下载文件,并保存到硬盘上(需要引入System.Net命名空间)。
代码如下 | 复制代码 |
using System; |
范例二;使用OpenRead()方法返回一个Stream引用。然后把数据提取到内存中(也可调用OpenWrite方法返回一个可写数据流不演示)。
代码如下 | 复制代码 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace Test { class Program { static void Main(string[] args) { WebClient client = new WebClient(); using (Stream sw = client.OpenRead("http://www.111com.net/")) { using (StreamReader sr = new StreamReader(sw)) { while (sr.ReadLine() != null) { Console.WriteLine(sr.ReadLine()); Console.ReadKey(); } } } } } } |
2、使用WebClient上传文件。
可以使用UpLoadFile函数和UpLoadData函数分别上传文件二进制数据。
但是WebClient不能提供身份验证证书,许多站点都不接受没有身份认证的验证证书。
那我们要如何C#实现获取程序实时下载速度
首先,在下载文件的时候,我们不用DownloadFile()方法进行下载,用WebResponse的GetResponseStream()流进行下载,设一个临时储存变量用来保存不断接收的数据。再用一个额外的独立计时器来分别根据时间间隔和临时收到数据量做计算,临时数据接收量在速度计算后会清空。
下面开始代码:
代码如下 | 复制代码 |
string FileTemp=null; //临时储存 |
整个文件流全部保存在byts字节数组中,可以在循环时,边读边写入。
效果图:
jquery164029858965225584155="86" loaded="true" original="https://img.111cn.net/uploads/20220926/img_633171dc9190f30.png" />