diff --git a/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/internal/LogUploader.kt b/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/internal/LogUploader.kt index 0aa94e5..150277a 100644 --- a/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/internal/LogUploader.kt +++ b/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/internal/LogUploader.kt @@ -3,6 +3,7 @@ package com.xuqm.sdk.bugcollect.internal import android.util.Log import com.xuqm.sdk.bugcollect.IssueEvent import com.xuqm.sdk.bugcollect.LogEvent +import com.xuqm.sdk.XuqmSDK import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import okhttp3.Request @@ -26,9 +27,17 @@ internal object LogUploader { private val JSON_MEDIA = "application/json; charset=utf-8".toMediaType() + /** 将相对路径补全为绝对 URL(基于平台地址)。 */ + private fun resolveUrl(path: String): String { + val trimmed = path.trimEnd('/') + if (trimmed.startsWith("http://") || trimmed.startsWith("https://")) return trimmed + val base = XuqmSDK.platformUrl.trimEnd('/') + return "$base/${trimmed.trimStart('/')}" + } + fun uploadIssues(logApiUrl: String, issues: List) { if (issues.isEmpty()) return - val url = "${logApiUrl.trimEnd('/')}/bugcollect/v1/issues/batch" + val url = "${resolveUrl(logApiUrl)}/bugcollect/v1/issues/batch" val envelope = createEnvelope() val events = JSONArray() for (issue in issues) { @@ -40,7 +49,7 @@ internal object LogUploader { fun uploadEvents(logApiUrl: String, events: List) { if (events.isEmpty()) return - val url = "${logApiUrl.trimEnd('/')}/bugcollect/v1/events/batch" + val url = "${resolveUrl(logApiUrl)}/bugcollect/v1/events/batch" val envelope = createEnvelope() val eventsArray = JSONArray() for (event in events) { @@ -51,7 +60,7 @@ internal object LogUploader { } fun uploadIssue(logApiUrl: String, issue: IssueEvent) { - val url = "${logApiUrl.trimEnd('/')}/bugcollect/v1/issues/batch" + val url = "${resolveUrl(logApiUrl)}/bugcollect/v1/issues/batch" val envelope = createEnvelope() val events = JSONArray().put(issueToJson(issue)) envelope.put("events", events)