Как Вы создаете несколько экземпляр HTTPDownloader с частичной загрузкой асинхронно? и это собирает файл автоматически после того, как вся загрузка будет сделана?
Вы должны использовать HTTP-заголовок Range:
Range. Запрос только части сущности. Байты нумеруются от 0. Диапазон: bytes=500-999
Ie. Если вы хотите скачать 1000 файл в 4 частях, вы начнете 4 загрузки:
А затем просто соедините данные из ответов.
Для проверки размера файла можно использовать метод HEAD:
HEAD Запрашивает ответ, идентичный тому. тому, который соответствовал бы GET-запросу, но без тела. Это полезно для извлечения мета-информации, записанной в заголовках, без необходимости транспортировки всего содержимого.