fix: 语音下载复用应用 OkHttpClient 解决 SSL 握手失败
新建的 OkHttpClient 没有 TLS 配置,在 Android 8.1 设备连阿里云 OSS 时 SSL handshake 被 reset。改为注入应用已配置的 OkHttpClient Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,8 @@ import com.xiaoqu.watch.databinding.FragmentTaskListBinding
|
|||||||
import com.xiaoqu.watch.network.ApiResult
|
import com.xiaoqu.watch.network.ApiResult
|
||||||
import com.xiaoqu.watch.network.api.TaskApi
|
import com.xiaoqu.watch.network.api.TaskApi
|
||||||
import com.xiaoqu.watch.network.safeApiCall
|
import com.xiaoqu.watch.network.safeApiCall
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
import okhttp3.Request
|
||||||
import com.xiaoqu.watch.service.manager.NfcTaskManager
|
import com.xiaoqu.watch.service.manager.NfcTaskManager
|
||||||
import com.xiaoqu.watch.ui.common.BaseFragment
|
import com.xiaoqu.watch.ui.common.BaseFragment
|
||||||
import com.xiaoqu.watch.ui.widget.QuTipDialog
|
import com.xiaoqu.watch.ui.widget.QuTipDialog
|
||||||
@@ -42,6 +44,7 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
|||||||
|
|
||||||
@Inject lateinit var taskApi: TaskApi
|
@Inject lateinit var taskApi: TaskApi
|
||||||
@Inject lateinit var nfcTaskManager: NfcTaskManager
|
@Inject lateinit var nfcTaskManager: NfcTaskManager
|
||||||
|
@Inject lateinit var okHttpClient: OkHttpClient
|
||||||
|
|
||||||
/** 任务 ID 列表(queryTaskIds 返回) */
|
/** 任务 ID 列表(queryTaskIds 返回) */
|
||||||
private var taskList: List<TaskItem> = emptyList()
|
private var taskList: List<TaskItem> = emptyList()
|
||||||
@@ -457,12 +460,11 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 用 OkHttp 下载音频文件到缓存目录 */
|
/** 用 OkHttp 下载音频文件到缓存目录(复用应用 SSL 配置) */
|
||||||
private fun downloadToCache(url: String): java.io.File? {
|
private fun downloadToCache(url: String): java.io.File? {
|
||||||
return try {
|
return try {
|
||||||
val client = okhttp3.OkHttpClient()
|
val request = Request.Builder().url(url).build()
|
||||||
val request = okhttp3.Request.Builder().url(url).build()
|
val response = okHttpClient.newCall(request).execute()
|
||||||
val response = client.newCall(request).execute()
|
|
||||||
if (!response.isSuccessful) {
|
if (!response.isSuccessful) {
|
||||||
Timber.w("语音下载HTTP错误: ${response.code}")
|
Timber.w("语音下载HTTP错误: ${response.code}")
|
||||||
return null
|
return null
|
||||||
|
|||||||
Reference in New Issue
Block a user