servicestack,resume-download,C#,servicestack,Resume Download" /> servicestack,resume-download,C#,servicestack,Resume Download" />

C# 如何使用ServiceStack客户端恢复大文件下载并获得下载进度?

C# 如何使用ServiceStack客户端恢复大文件下载并获得下载进度?,c#,servicestack,resume-download,C#,servicestack,Resume Download,我有一个ServiceStack客户端,它调用一个返回100MB到10GB之间的大数据文件的服务。目前,该客户端使用Stream.CopyTo方法保存到文件,在局域网上运行良好 当客户机在WAN上运行时(除了在LAN上运行),在停止或断开连接时恢复下载以及查看进度的能力变得非常重要 该服务支持发送部分文件,但我不清楚如何在ServiceStack客户端中支持这一点,即使它是内置的,我也没有意识到这一点 另外,stream上的CopyTo方法将复制到另一个stream不会报告其进度,因此对于一个大

我有一个ServiceStack客户端,它调用一个返回100MB到10GB之间的大数据文件的服务。目前,该客户端使用
Stream.CopyTo
方法保存到文件,在局域网上运行良好

当客户机在WAN上运行时(除了在LAN上运行),在停止或断开连接时恢复下载以及查看进度的能力变得非常重要

该服务支持发送部分文件,但我不清楚如何在ServiceStack客户端中支持这一点,即使它是内置的,我也没有意识到这一点

另外,
stream
上的
CopyTo
方法将复制到另一个
stream
不会报告其进度,因此对于一个大文件,它可能需要数小时的时间,您无法判断其进度。我看到过关于报告进度的
CopyFrom
方法的帖子,但我在我使用的类中找不到

我的环境是Mac OS X上最新版本的ServiceStack和Mono,以及Windows上最新版本的.NET 4.5

能够同时下载不同片段的文件将是理想的,但能够恢复下载将是一个巨大的帮助

有人能指出在ServiceStack客户端中执行此操作的最佳方法吗?我发现的大多数示例都是针对普通web客户端的,而且非常古老,所以我想看看使用更高版本的dotnet和mono以及ServiceStack的最佳方法是什么

如果可能,一个基本示例将是完美的。

ServiceStack支持返回的服务:

物理文件 内存流 原始文本 通过ServiceStack提供的静态文件 部分内容也可以通过ServiceStack直接下载静态文件,通过ServiceStack,您可以流式播放mp3下载,或者在您需要下载static.html、.css、.js等文件时可以下载


有关如何使用请求部分下载的示例,请参阅。

服务器端已全部处理完毕且正常工作,因此它只是客户端。如果我理解正确,我应该使用http utils GetBytesFromUrl方法和单元测试中的头,将小数据块放入内存,然后将它们写出。如果是这样的话,那么我将使用包装类来实现这一点,我将在任何地方重用它。
return new HttpResult(new FileInfo(filePath), request.MimeType); 
return new HttpResult(ms, "audio/mpeg");
return new HttpResult(customText, "text/plain");