0

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

4

1 回答 1

0

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

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

于 2013-08-07T21:41:43.767 回答