如何在我的应用程序中从HTTP下载大文件(~500MB)?我想支持自动恢复/重试,这样当连接断开连接时,我的应用程序可以尝试重新连接以获取文件并避免重新下载下载的部分,如果可能的话(我知道,这也取决于服务器).
这类似于下载管理器和某些浏览器中的行为.
核心问题是关于HTTP标头的使用,包括Range,If-Range,Accept-Ranges和用户定义的范围说明符.
这是一个制作示例,以帮助说明我的问题.假设我有一个Web 2.0样式的应用程序,它显示某种人类可读的文档.这些文档在编辑上分为几页(类似于您在新闻网站上看到的文章).对于此示例,假设:
/document/shell/http-range-question)知道有关文档的元信息,包括页面数./document/content/http-range-question?page=1/document/content/http-range-question?page=2/document/content/http-range-question?page=3/document/content/http-range-question现在回答这个问题.我可以使用HTTP Range标头而不是URL的一部分(例如查询字符串参数)吗?在GET /document/content/http-range-question请求上可能是这样的:
Range: page=1
Run Code Online (Sandbox Code Playgroud)
看起来规范只定义字节范围是允许的,所以即使我让我的ajax调用与我的浏览器和服务器代码一起工作,中间的任何东西都可能破坏合同(例如缓存代理服务器).
Range: bytes=0-499
Run Code Online (Sandbox Code Playgroud)
自定义范围说明符的任何意见或现实世界的例子?
更新:我确实找到了一个关于Range标头(在Rest集合中分页)的类似问题,他们提到Dojo的JsonRestStore使用自定义Range标头值.
Range: items=0-24
Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法知道服务器是否支持简历下载功能,如果支持,如何发送恢复请求?
我正在寻找一个解决方案,我的ASP.NET页面可以从服务器下载到我的,像今天的" rapidleech "这样的东西,但我想检查我请求下载的服务器是否支持恢复功能.
c# ×2
http ×2
.net ×1
ajax ×1
asp.net ×1
file-io ×1
http-headers ×1
pagination ×1
web ×1
webrequest ×1