【问题标题】:HttpURLConnection: set Byte-range request after connectedHttpURLConnection:连接后设置字节范围请求
【发布时间】:2013-08-08 05:41:43
【问题描述】:

所以我使用 setRequestProperty 向 URL 发送 Byte-Range 请求。但问题是我想首先使用 getContentLength 获取大小。但是,编译器在询问长度后抱怨我已经连接到该 URl,我无法再设置字节范围。无论如何要按照这个特定的顺序执行此操作而不会引发错误?我试着去: getContentLength() -> connection.disconnect() -> setRequestProperty() ->connection.connect()。但这也没有用。在我断开它并重新连接后,它根本没有收到任何数据。

【问题讨论】:

    标签: java httpurlconnection


    【解决方案1】:

    HttpURLConnection 用于向服务器发出单个 请求,不能重复用于后续请求。由于 getContentLength() 返回响应的长度,在它返回时请求已经发送,这就是为什么你不能再在请求中添加标头的原因。

    您可以使用两个 HttpURLConnections - 第一个请求文档的长度,第二个(根据从第一个请求获得的长度设置 Range 标头)来获取实际的文档范围你有兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 2011-05-18
      • 2011-12-11
      相关资源
      最近更新 更多