服务的最佳实践-完整的下载示例

本文介绍了在实现Android下载服务时遇到的一个问题:无法获取Content-Length导致下载进度显示为-1。分析原因是请求头缺少Content-Length字段,可能与Transfer-Encoding: chunked有关。解决方案包括在请求头中添加Accept-Encoding来避免chunked模式,修改服务端提供Content-Length,或者更换下载链接。通过这些方法,成功解决了下载进度条显示的问题。
摘要由CSDN通过智能技术生成

项目场景:

在复现《第一行代码》里的第十章服务的示例的时候遇到的bug


问题描述

1.记得添加okhttp依赖,当时我的最新的(这里新版添加依赖都要用implementation不然会报错)

// define a BOM and its version
    implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.3"))
// define any required OkHttp artifacts without version
    implementation("com.squareup.okhttp3:okhttp")
    implementation("com.squareup.okhttp3:logging-interceptor")

2.实现进度条显示下载进度的时候要编写getContentLength方法来计算目前的进度的时候,获取到的contentLength是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值