小5聊Winform从指定服务器下载文件的方式
Posted 小5聊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小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);
以上是关于小5聊Winform从指定服务器下载文件的方式的主要内容,如果未能解决你的问题,请参考以下文章
小5聊Winform窗体遍历进程提示拒绝访问以及32位无法访问64位模块解决方法