C# 从网络服务下载文件

C# Download file from webservice

我有一个 Web 服务,例如 this example,用于从服务器下载 zip 文件。当我通过网络浏览器打开 URL 时,我可以正确下载 zip 文件。问题是当我尝试通过我的桌面应用程序下载 zip 文件时。我使用以下代码下载:

WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri(@"http://localhost:9000/api/file/GetFile?filename=myPackage.zip"), @"myPackage.zip");

测试后,我下载了 myPackage.zip,但它是空的,0kb。关于这个或任何其他服务器代码 + 客户端代码示例的任何帮助?

您可以尝试改用 HttpClient。通常,它更方便。

        var client = new HttpClient();
        var response = await client.GetAsync(@"http://localhost:9000/api/file/GetFile?filename=myPackage.zip");

        using (var stream = await response.Content.ReadAsStreamAsync())
        {
            var fileInfo = new FileInfo("myPackage.zip");
            using (var fileStream = fileInfo.OpenWrite())
            {
                await stream.CopyToAsync(fileStream);
            }
        }