【小5聊】Winform从指定服务器下载文件的方式

在一些实际项目中,我们往往需要上传一些excel、word等办公文件,甚至是mp3、mp4等音频视频文件。

当然,大多数小型网站会放到自己服务器,如果文件量不大的话

如果文件数量会很多,那么就需要考虑使用第三方来保管存储

不管是自己服务器存储还是第三方存储,有时候总会需要下载到本地或者,这个时候自己就可以写个winform小工具

也趁这次空闲时间,给C#入门同行整理一个简单例子

下载效果

 

1、开发环境

1)win11操作系统

2).NET Framework 4.8

2、知识点

1) 带宽占用

如果是从自己服务器下载,那么在下载过程中,服务器会占用一定带宽

所以,若是操作线上服务器,为不影响用户体验,可以选择访问量少的时候操作

2)WebClient

3)HttpWebRequest

3、使用WebClient实现下载

这里找一个下载mp3的链接测试

每次操作完文件下载,即可释放或关闭

1)先对当前类进行实例化

2)实例化后,即可调用下载方法

3)再设置一个变量,下载后保存的文件完整路径

  • 简单的代码
string url = txtUrl.Text;
string savaPath = $"{txtSavePath.Text}\\{Guid.NewGuid().ToString()}.mp3";
WebClient webClient = new WebClient();
webClient.DownloadFile(url, savaPath);
webClient.Dispose(); // 手动释放

4、使用WebClient异步下载

1)刚接触异步的小伙伴,可能对这个没什么概念

2)异步可以同时开启多个线程进行下载

3)异步接收的第一个参数由字符串变为了一个Uri类

string url = txtUrl.Text;
string savaPath = $"{txtSavePath.Text}\\{Guid.NewGuid().ToString()}.mp3";
using(var webClient=new WebClient())
{
    Uri urlValue = new Uri(url);
    webClient.DownloadFileAsync(urlValue, savaPath);
}

5、使用WebClient下载json数据

1)并在发送请求头加上数据

2)上传的数据需要转为二进制同时以form表达形式上传,大多数是这么规定

  •  代码如下
string url = txtUrl.Text;
string savaPath = $"{txtSavePath.Text}\\{Guid.NewGuid().ToString()}.json";
using (var webClient = new WebClient())
{
    Uri urlValue = new Uri(url);
    string postString = "testvalue=123456&key=123";
    webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    byte[] postData = Encoding.UTF8.GetBytes(postString);
    byte[] responseData = webClient.UploadData(urlValue, "POST", postData);
                
    string result = Encoding.UTF8.GetString(responseData);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值