From 18a1fc58a6d81b2cf64819bf2da3d51969bab367 Mon Sep 17 00:00:00 2001 From: dongliang Date: Thu, 7 May 2026 11:42:35 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AF=AD=E9=9F=B3=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=A4=8D=E7=94=A8=E5=BA=94=E7=94=A8=20OkHttpClient=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=20SSL=20=E6=8F=A1=E6=89=8B=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新建的 OkHttpClient 没有 TLS 配置,在 Android 8.1 设备连阿里云 OSS 时 SSL handshake 被 reset。改为注入应用已配置的 OkHttpClient Co-Authored-By: Claude Opus 4.6 (1M context) --- .../java/com/xiaoqu/watch/ui/task/TaskListFragment.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt index 6c90538..9f4f007 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt @@ -19,6 +19,8 @@ import com.xiaoqu.watch.databinding.FragmentTaskListBinding import com.xiaoqu.watch.network.ApiResult import com.xiaoqu.watch.network.api.TaskApi import com.xiaoqu.watch.network.safeApiCall +import okhttp3.OkHttpClient +import okhttp3.Request import com.xiaoqu.watch.service.manager.NfcTaskManager import com.xiaoqu.watch.ui.common.BaseFragment import com.xiaoqu.watch.ui.widget.QuTipDialog @@ -42,6 +44,7 @@ class TaskListFragment : BaseFragment() { @Inject lateinit var taskApi: TaskApi @Inject lateinit var nfcTaskManager: NfcTaskManager + @Inject lateinit var okHttpClient: OkHttpClient /** 任务 ID 列表(queryTaskIds 返回) */ private var taskList: List = emptyList() @@ -457,12 +460,11 @@ class TaskListFragment : BaseFragment() { } } - /** 用 OkHttp 下载音频文件到缓存目录 */ + /** 用 OkHttp 下载音频文件到缓存目录(复用应用 SSL 配置) */ private fun downloadToCache(url: String): java.io.File? { return try { - val client = okhttp3.OkHttpClient() - val request = okhttp3.Request.Builder().url(url).build() - val response = client.newCall(request).execute() + val request = Request.Builder().url(url).build() + val response = okHttpClient.newCall(request).execute() if (!response.isSuccessful) { Timber.w("语音下载HTTP错误: ${response.code}") return null