小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窗体开发基础之报错提示未能找到文件

小5聊Winform窗体开发基础知识积累

小5聊Windows服务器安装宝塔部署php网站

小5聊Winform窗体遍历进程提示拒绝访问以及32位无法访问64位模块解决方法

小5聊C# Winform窗体,程序点击运行第二次自动判断显示,解决不重复打开两个相同窗体

小5聊开启服务器配置后,微信自定义菜单会自动失效不显示的解决方法(最新版方式)