2013-08-07 3 views
0

Итак, я использовал setRequestProperty для отправки запроса Byte-Range на URL-адрес. Но проблема в том, что я хочу сначала получить размер, используя getContentLength. Однако компилятор жалуется, что я уже подключился к этому URl после запроса длины, я больше не могу устанавливать байтовый диапазон. Есть ли способ сделать это в этом конкретном порядке без ошибки? Я попытался пойти: getContentLength() -> connection.disconnect() -> setRequestProperty() -> connection.connect(). Но это тоже не сработало. После того, как я отключил его и подключился снова, он вообще не получал никаких данных.HttpURLConnection: задать запрос байтового диапазона после подключения

ответ

0

HttpURLConnection используется для создания одного запроса на сервер и не может быть повторно использован для последующего запроса. И поскольку getContentLength() возвращает длину ответа , к моменту его возвращения запрос уже отправлен, поэтому вы больше не можете добавлять заголовки в запрос позже.

Вы можете использовать два HttpURLConnections - первый для запроса длины документа, а второй (в котором вы устанавливаете заголовок Range на основе длины, полученной от первого запроса), чтобы получить фактический документ диапазон, который вас интересует.

Смежные вопросы