Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 一 框架配置
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 二 请求数据
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件上传)
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 四 下载文件
1.添加下载地址接口
2.添加请求方法实例
3.初始化 调用
@GET
@Streaming
fun downloadImg(@Url imgUrl: String): Observable<ResponseBody>
/**
* 指定线程下载文件(异步),非阻塞式下载
*
* @param url 图片url
*
*/
private fun downloadFile(
url: String
) {
RetrofitHelper.getApi()
.downloadImg(url)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.newThread())
.subscribe(object : DisposableObserver<ResponseBody?>() {
override fun onNext(responseBody: ResponseBody) {
var bitmap: Bitmap? = null
val bys: ByteArray
try {
bys = responseBody.bytes()
bitmap = BitmapFactory.decodeByteArray(bys, 0, bys.size)
if (bitmap == null) {
return
}
try {
Utils.saveImg(bitmap, "本地路径", "文件名称" )
} catch (e: IOException) {
e.printStackTrace()
}
} catch (e: IOException) {
e.printStackTrace()
}
bitmap?.recycle()
}
override fun onError(e: Throwable) {
//下载异常
}
override fun onComplete() {
//下载完成
}
})
}