科特琳代码:
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: ])
答案 0 :(得分:0)
服务器根本不为URL http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_mgsasc.zip发送“内容长度”标头
您看到的“长度:-1”可能来自Fuel库。
响应使用“块”的“传输编码:”,这是一种特殊的传输编码,不需要预先指定内容长度。
看起来Fuel不支持“块状”传输编码。我已经在他们的github存储库中搜索了“ transfer-encoding”和“ chunked”,但都不返回任何匹配。
您可能要在库中建议一个新功能。