0

我正在编写一个移动应用程序,我在从 Yahoo! 下载冗长的文件时遇到了困难!定期(大约每三分钟)中止下载的服务器。移动应用程序通过相同的慢速数据连接成功地从其他服务器下载了冗长的文件。来自 Yahoo! 的 HTTP 标头转储 服务器是

D/AsyncDownloadFile(694): 头字段: {p3p=[policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA PO L HEA PRE LOC GOV"], content-type=[application/octet-stream], connection=[close] , last-modified =[格林威治标准时间 2010 年 8 月 6 日星期五 14:47:50],内容长度=[2000000],年龄=[0],服务器=[YTS/1.17.13],接受范围=[字节],日期=[ 2010 年 8 月 7 日星期六 18:53:02 GMT]}

这表明它定义了 connection=[close]。一个不同的(非 Yahoo!)服务器定义了 connection=[keep-alive] 并且我的移动应用程序成功地从它下载。所以我有几个问题:
是什么导致了 Yahoo! 服务器定期中止下载?我可以做些什么来避免定期中止或我可以做些什么来恢复中止的下载?服务器定义connection=[close]时是否考虑字节范围的请求?

我读过的东西:

我尝试过的事情:

  • 我尝试将 http 标头“Connection”字段设置为“keep-alive”,但 Yahoo! 服务器响应是一个标头“连接”字段设置为“关闭”。
  • 我已尝试按照此问题中的描述恢复连接。即使来自 Yahoo! 的 HTTP 标头 服务器显示它支持字节范围请求并且内容范围响应显示正确(例如,内容范围=[字节 387924-1999999/2000000]),恢复的传输在文件开始时错误地恢复。我想知道这是否是由于 connection=[close] 设置。

因为 HTTP 标头的主题对我来说相当新,所以欢迎任何关于常见陷阱的建议或警告。

[更新] 我收到了雅虎的回复!技术支持说不支持字节范围:“Yahoo!Web Hosting 不支持 Accept-range 标头,因为我们使用服务器池并且每个请求都可能到达不同的服务器。您将在响应中看到 connection=[close]标题表明这一点。” 剩下的问题是是否可以避免定期下载中止。(我尝试请求 Connection="keep-alive" 但被忽略了。)

4

1 回答 1

0

我收到了雅虎的回复!技术支持解释不接受字节范围请求:“Yahoo!Web Hosting 不支持 Accept-range 标头,因为我们使用服务器池并且每个请求都可能到达不同的服务器。您将在表明这一点的响应标头。”

鉴于无法恢复下载,我询问是否可以避免定期中止下载(例如,Connection=[keep-alive])。雅虎!技术支持回复:“该过程由系统处理,目前没有解决办法。”

虽然这些不是我想要的答案,但我感谢 Yahoo!为解决有关 Yahoo! 的问题提供技术支持 服务器行为。

于 2010-08-12T11:47:28.910 回答