所以我使用setRequestProperty向URL发送字节范围请求。但问题是我想首先使用getContentLength获取大小。然而,编译器抱怨我在询问长度后已经连接到该URl,我不能再设置字节范围。无论如何,在这个特定的顺序中执行此操作是否会抛出错误?我试着去: getContentLength() - > connection.disconnect() - > setRequestProperty() - > connection.connect()。但这也不起作用。断开连接并再次连接后,它根本没有收到任何数据。
答案 0 :(得分:0)
HttpURLConnection用于向服务器发出单个请求,不能重复用于后续请求。由于getContentLength()返回响应的长度,因此在返回请求时已经发送,这就是为什么之后您不能再向请求添加标头的原因。
您可以使用两个HttpURLConnections - 第一个请求文档的长度,第二个(根据您从第一个请求获得的长度设置Range标头)来获取实际文档范围你对此感兴趣。