取消

WebRequest下载文件

WebRequest下载文件


上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
private void DownloadFile(string fileUrl, string filename)
{
    try
    {
        var request = WebRequest.Create(fileUrl);
        var response = request.GetResponse();

        using (var responseStream = response.GetResponseStream())
        {
            var readedSize = 0L;

            using (var fs = new FileStream(filename, FileMode.Create))
            {
                var buffer = new byte[1024 * 500];
                var readSize = responseStream.Read(buffer, 0, buffer.Length);

                while (readSize > 0)
                {
                    fs.Write(buffer, 0, readSize);
                    readSize = responseStream.Read(buffer, 0, buffer.Length);

                    readedSize += readSize;
                }
            }
        }

        response.Close();
    }
    catch (WebException ex)
    {
        var rsp = ex.Response as HttpWebResponse;

        if (rsp != null && rsp.StatusCode == HttpStatusCode.NotFound)
        {
            throw new FileNotFoundException(fileUrl);
        }
        else
        {
            throw ex;
        }
    }
}

本文会经常更新,请阅读原文: https://dashenxian.github.io/post/WebRequest%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6 ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com)

登录 GitHub 账号进行评论