Kotlin Fuel.download создает пустой файл - PullRequest
0 голосов
/ 16 октября 2018

Код Котлина:

Fuel.download("http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_mgsasc.zip")
        .destination { response, url -> File("mega.zip").apply { println(absolutePath) } }
        .responseString()

Этот определенный URL возвращает длина: -1 и создает пустой файл.Как я могу это исправить?

Ответ:

(--> http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_mgsasc.zip
"Body : (empty)"
"Headers : (1)"
Accept-Encoding : compress;q=0.5, gzip;q=1.0
, <-- 200 (http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_mgsasc.zip)
Response : OK
Length : -1
Body : ((empty))
Headers : (10)
Transfer-Encoding : [chunked]
Accept-Ranges : [bytes]
Server : [Microsoft-IIS/6.0]
ETag : ["39fa791f4d64d41:d118"]
Last-Modified : [Mon, 15 Oct 2018 06:05:50 GMT]
Age : [33]
Date : [Mon, 15 Oct 2018 13:36:58 GMT]
Via : [AX-CACHE-2.7:210]
X-Powered-By : [ASP.NET]
Content-Type : [application/x-zip-compressed]
, [Success: ])

1 Ответ

0 голосов
/ 16 октября 2018

Сервер вообще не отправляет заголовок "Content-length" для URL http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_mgsasc.zip

Видимая длина "-1:", вероятно, получена из библиотеки Fuel.

В ответе используется "Transfer-encoding:" of "chunked", которая представляет собой специальную кодировку передачи, для которой не требуется длина содержимого заранее.

Не похоже, что Fuel поддерживаеткодирование передачи "chunked".Я искал в их репозитории на github слова "Transfer-Encoding" и "Chunked" и не возвращает ни одного из них.

Возможно, вы захотите предложить новую функцию в библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...