From dab2f54542d151c92dcba04bd9833280e9728e2d Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期二, 18 八月 2026 13:57:55 +0800
Subject: [PATCH] 修复问题
---
app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt | 39 ++++++++++++++++++++++++++-------------
1 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt b/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
index fc39134..a778e31 100644
--- a/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
+++ b/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
@@ -18,6 +18,7 @@
import android.util.Log
import android.view.View
import androidx.core.content.ContextCompat
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.SPUtils
import com.driver.igotrip.R
import com.driver.igotrip.base.Const
@@ -44,6 +45,9 @@
import com.google.android.gms.maps.model.PolylineOptions
import com.google.gson.Gson
import com.tbruyelle.rxpermissions2.RxPermissions
+import io.reactivex.Observable
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.schedulers.Schedulers
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.OkHttpClient
import okhttp3.Request
@@ -439,25 +443,34 @@
return false
}
- fun getClient(url: String, function: (String) -> Unit) {
+ fun getClient(url: String, retryCount: Int = 3, function: (String) -> Unit) {
val client = OkHttpClient().newBuilder().build()
- val mediaType = "text/plain".toMediaTypeOrNull()
- val body = RequestBody.create(mediaType, "")
val request: Request = Request.Builder()
.url(url)
.method("GET", null)
.build()
- Thread {
- try {
- val response = client.newCall(request).execute()
- Handler(Looper.getMainLooper()).post {
- function(response.body?.string() ?: "")
+ LogHelper.logRecord("请求谷歌服务器 $url")
+ val subscribe = Observable.just(request)
+ .map { request -> client.newCall(request).execute().body?.string() ?: "" }
+ .retry(retryCount.toLong()) // 最多额外重试 3 次(加上首次共 4 次尝试)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ try {
+ if (it.isEmpty()) {
+ LogHelper.logRecord("请求谷歌服务器成功 获取结果异常为空")
+ return@subscribe
+ }
+ function(it)
+ LogHelper.logRecord("请求谷歌服务器成功")
+ } catch (e: Exception) {
+ e.printStackTrace()
+ LogHelper.logRecord("请求谷歌服务器成功,获取结果异常报错 message:${e.message},stackTrace:${e.stackTraceToString()}")
}
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }.start()
-
+ }, { throwable ->
+ throwable.printStackTrace()
+ LogHelper.logRecord("请求谷歌服务器异常报错 message:${throwable.message},stackTrace:${throwable.stackTraceToString()}")
+ })
}
/***
--
Gitblit v1.7.1