gpt4 book ai didi

android - 如何使用 OkHttp 下载多个文件?

转载 作者:行者123 更新时间:2023-11-29 17:23:23 26 4
gpt4 key购买 nike

我需要使用 OkHttp 库下载多个文件。在所有下载完成后,我需要通知用户。

我知道如何使用 OkHttp 下载一个文件。这是代码:

OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
okHttpClient.newCall(request).enqueue(new okhttp3.Callback() {
@Override
public void onFailure(okhttp3.Call call, IOException e) {
Log.d("TAG", "download file fail: " + e.getLocalizedMessage());
}

@Override
public void onResponse(okhttp3.Call call, okhttp3.Response response) throws IOException {
if (response.isSuccessful()) {
//I have response data of downloaded file
}
}
});

我如何才能下载所有文件,而不只是一个文件?

最佳答案

我将在这里抛出一个 RxJava/Kotlin 示例......

Observable.from(urls)
.subscribeOn(Schedulers.io())
.map { url ->
val request = Request.Builder().url(url).build()
okHttpClient.newCall(request).execute()
}
.observeOn(AndroidSchedulers.mainThread())
.subscribe { responses ->
// responses: List<Response> - do something with it
// nothify User (we're on the UI thread here)
}, { error ->
// handle the error
}

不仅简洁,而且处理错误和线程同步

关于android - 如何使用 OkHttp 下载多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com