C# 从网络服务下载文件

2023-12-11

我有一个网络服务,比如这个例子用于从服务器下载 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);
            }
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 从网络服务下载文件 的相关文章

随机推荐

  • jquery - 查找我引用的元素的名称

    在代码中 我在 Jquery 中引用了 DOM 元素 我怎么知道它的id 这可能违反直觉 但我需要知道这一点 以便我可以对另一个具有相似名称的元素进行一些操作 this attr id
  • 解构存在类型

    我使用存在类型作为包装器 在我的代码中 当我知道封闭类型时 我想用它做一些特定于封闭类型的事情 这是我能得到的最接近的 LANGUAGE ExistentialQuantification class Agent a where agent
  • 用特殊字符填充文本区域

    我正在使用用户之前的输入填充文本区域 这是从数据库中提取并设置为文本区域服务器端的内容 我们似乎遇到了拼写错误和特殊字符组合的问题 如果用户输入 6最初 当我尝试用它填充我的文本区域时 它只是呈现一个小正方形 就像它解释字符编码值一样 使用
  • 针对非类型参数的特定值的模板代码优化。

    template
  • 查找近似重复记录的技术

    我正在尝试清理一个数据库 多年来该数据库已获取许多重复记录 且名称略有不同 例如 在公司表中 有 Some Company Limited 和 SOME COMPANY LTD 之类的名称 我的计划是将有问题的表导出到 R 中 将名称转换为
  • 如何在命令行中使用 Robocopy 复制带时间戳的文件

    以下是我将计算机中的文件复制以及从计算机复制到网络的命令 ROBOCOPY K Builds F Builds E COPY DAT ROBOCOPY E K Shan Khan E COPY DAT 我怎么能在目标文件夹中创建时间戳仅在复
  • 如何使用txt文件作为命令行参数?

    我有一个像这样的 txt 文件 6 4 1 2 2 3 3 4 4 5 1 2 4 5 如何在 C 中使用它作为命令行参数 如果您打算提供您的程序数据program exe lt data txt 这就是所谓的从标准输入读取 您可以通过 N
  • 如何接收 OS X 中文件系统更改的通知?

    在 Windows 中 我可以使用 FindNextChangeNotification API 来监视文件或文件夹的更改 例如 我可以监视文件夹并在添加或删除文件时收到通知 OS X 上有类似的 API 吗 Mac OS X v10 5
  • BZIP2块标头:1AY&SY

    这是关于BZIP2的问题存档格式 任何BZIP2存档都由文件标头 一个或多个块和尾巴结构组成 所有块应从 1AY SY 开始 pi号的BCD编码数字为6个字节 0x314159265359 根据BZIP2的来源 A 6 byte block
  • VBA中MSSQL“走”的正确使用

    我即将运行一个使用 MSSQL 编写的批处理 如下所示 create function xy end go create function2 xy end go 然后 我将它保存在一个文件中 我的宏将其读入一个字符串并使用 ADO 尝试运行
  • Angular 2 Reactive Forms 仅从更改的控件中获取值

    我有一个包含所有输入的动态创建的表单 我正在订阅更改 但是当某个控件发生更改时 我会从所有控件中获取值 因此我真的不知道哪个控件发生了更改 是否可以使用 valueChanges 函数仅从更改的控件中获取更改的值 该表单非常大 因此将每个控
  • java中的复选框数组

    我想要 6 个复选框 并在按下按钮后执行一些操作 您有例子吗 还可以使用复选框数组吗 我想避免 Checkbox cb1 new Checkbox A Checkbox cb2 new Checkbox B 我正在做类似的事情 JPanel
  • 从另一个视图调用一个视图

    我有一个登录 phtml视图想要放置一个公共路径并让任何模块通过应用程序访问它 对于由以下方式渲染的侧边栏 this gt render common sidebar phtnl 它可以工作 因为我的布局对于所有模块都是单一的 但说到内容
  • 基于XmlChoiceIdentifier创建对象

    我正在使用 Activator C 动态创建对象 其中一个类如下所示 class Driver Driver XmlChoiceIdentifier ItemElementName XmlElement Bit16 typeof Drive
  • 为什么 PHP 会话在页面重新加载时被删除?

    所以我遇到了这个问题 当我在页面上一段时间没有执行任何操作时 在重新加载页面后 SESSION已清除 我检查了代码 它没有任何unset 功能或任何其他可以清除 SESSION多变的 任何想法为什么会发生 Edit 如果我想让会话一直持续到
  • 通过样式更改操作栏溢出菜单项的高度

    我们正在开发一款用于工业用途的 Android 应用程序 我们增加了操作栏 文本等的大小 以帮助提高可见性和触摸目标大小 一切正常 但是我无法增加操作栏溢出菜单列表项的高度 挖掘周围我已经能够使用更改弹出菜单的背景颜色
  • 在方法中返回 Meteor.http 结果

    我有一个围绕 http get 的 Meteor 方法 我试图将 http get 的结果返回到方法的返回中 以便在调用该方法时可以使用结果 但我无法让它发挥作用 这是我的代码 在共享文件夹中 Meteor methods getWeath
  • 如何使用 JQuery 在输入类型文件中验证文件扩展名?

    HTML
  • 对子集使用表可获取整个 DF 而不是子集的频率

    我正在使用子集从列值集中提取 我有一个包含几列的 DF 其中一列是状态 我需要获取状态的频率 但只是针对某些状态集 所以我有这个 tmp lt subset DF DF STATE in SOMESTATES a lt as data fr
  • C# 从网络服务下载文件

    我有一个网络服务 比如这个例子用于从服务器下载 zip 文件 当我通过网络浏览器打开 URL 时 我可以正确下载 zip 文件 问题是当我尝试通过桌面应用程序下载 zip 文件时 我使用以下代码进行下载 WebClient webClien