Kotlin Fuel.download创建一个空文件

时间:2018-10-16 02:16:23

标签: http kotlin kotlin-fuel

科特琳代码:

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

特定URL 返回 length:-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 :(得分:0)

服务器根本不为URL http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_mgsasc.zip发送“内容长度”标头

您看到的“长度:-1”可能来自Fuel库。

响应使用“块”的“传输编码:”,这是一种特殊的传输编码,不需要预先指定内容长度。

看起来Fuel不支持“块状”传输编码。我已经在他们的github存储库中搜索了“ transfer-encoding”和“ chunked”,但都不返回任何匹配。

您可能要在库中建议一个新功能。