fix(bugcollect): LogUploader 自动将相对路径补全为绝对 URL
- bugCollectApiUrl 为相对路径时,基于 XuqmSDK.platformUrl 拼接完整地址 - 修复 'Expected URL scheme http or https' 异常
这个提交包含在:
父节点
3ded960383
当前提交
d742317c4d
@ -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<IssueEvent>) {
|
||||
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<LogEvent>) {
|
||||
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)
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户