java - 从 dropbox url 下载忽略范围

标签 java android http dropbox httpconnection

如果我想从保管箱 url 下载文件,我的 http header 范围将被忽略:

httpRequest = new HttpGet(url.toURI());
httpRequest.addHeader("Range", "bytes=" + startPos + "-"    + dwnInfo.getStopRange());
httpRequest.addHeader("Accept-Encoding", "");

因此,连接忽略了指定的范围,并下载了 Y mb 的 x block ,其中 y 是文件的完整大小,而不是让我的文件以 ex 5mb 的 block 的形式下载。

从亚马逊存储链接下载我没有任何问题。

有没有人遇到过这种情况?这只发生在几天前。直到现在这都不是问题。

我试着查看 dropbox 开发页面,但没有看到任何说明他们是否删除了 url 上接受的范围

最佳答案

您提供的链接指向一个 HTML 页面(总大小约为 46KB),因此即使范围检索在那里有效,也不会很有用。

根据 https://www.dropbox.com/help/201/en ,您可以通过将域更改为 dl.dropboxusercontent.com 将共享链接变成文件的直接链接,因此您的链接变为 https://dl.dropboxusercontent.com/s/5c7atlfmacjf3qn/02%20Armin%20Van%20Buuren%20-%20A%20State%20Of%20Trance%20Year%20Mix%202013%20%28Cd%202%29.mp3 ,并且范围检索适用于该 URL。

(我在这里使用 httpie 。)

$ http get https://dl.dropboxusercontent.com/s/5c7atlfmacjf3qn/02%20Armin%20Van%20Buuren%20-%20A%20State%20Of%20Trance%20Year%20Mix%202013%20%28Cd%202%29.mp3 range:bytes=0-0
HTTP/1.1 206 PARTIAL CONTENT
Connection: keep-alive
Content-Length: 1
Content-Type: audio/mpeg
Date: Wed, 18 Jun 2014 14:53:32 GMT
Server: nginx
accept-ranges: bytes
cache-control: max-age=0
content-range: bytes 0-0/146014047
etag: 346n
pragma: public
set-cookie: uc_session=2cqmevWxG8lmGt743KMXebc23dRC5iuZEfm8Etx6V2VShWk60jmnUJajFnH1wRG4; Domain=dropboxusercontent.com; Path=/; secure; httponly
x-dropbox-request-id: 2f0c5986a62cf2f0b06af1704ece5bd7
x-server-response-time: 535

I

关于java - 从 dropbox url 下载忽略范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259402/

相关文章:

android - 如何使用推送通知同步 SQLite 和 MySQL 数据库?

android - 如何修复 React Native 中的 "TypeError: undefined is not an object (evaluating ' _reactNativeCamera.default.constants')”错误?

java - 即使表中的数据不为零,使用简单算术运算和别名时 JDBC 查询也会返回零

api - 我收到错误 AccessRules : Account does not have the right to perform the operation when I am using postman to hit the register api of ejabberd

java - 在 applet 或 Google AppEngine 中托管 Java 编译器?

Java BufferedReader 通过自定义分隔符读取行

触发获取请求时出现 java.lang.IllegalArgumentException : Host name may not be null,

http - 从 Envoy 后面的容器与 Redis 服务器通信

java - 将函数的参数声明为 final : why and when is it needed?

java - 使用 PowerMockito 模拟接口(interface)