From 93151737aeef91fce637984b68f1df61810c9aa3 Mon Sep 17 00:00:00 2001 From: Xwite <82232510+Xwite@users.noreply.github.com> Date: Mon, 3 Oct 2022 16:28:27 +0800 Subject: [PATCH] fix(AnalyzeUrl): analyzeFields --- .../app/model/analyzeRule/AnalyzeUrl.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt index dbc2e385a..53101725c 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt @@ -211,24 +211,29 @@ class AnalyzeUrl( } /** - * 解析QueryMap + * 解析QueryMap = + * name= + * name=name + * name= eg name=bmFtZQ== */ private fun analyzeFields(fieldsTxt: String) { queryStr = fieldsTxt val queryS = fieldsTxt.splitNotBlank("&") for (query in queryS) { - val queryM = query.splitNotBlank("=") - val value = if (queryM.size > 1) queryM[1] else "" + val separator = query.indexOf("=") + if (separator == -1) continue + val value = query.slice(separator + 1) + val key = query.slice(0, separator) if (charset.isNullOrEmpty()) { if (NetworkUtils.hasUrlEncoded(value)) { - fieldMap[queryM[0]] = value + fieldMap[key] = value } else { - fieldMap[queryM[0]] = URLEncoder.encode(value, "UTF-8") + fieldMap[key] = URLEncoder.encode(value, "UTF-8") } } else if (charset == "escape") { - fieldMap[queryM[0]] = EncoderUtils.escape(value) + fieldMap[key] = EncoderUtils.escape(value) } else { - fieldMap[queryM[0]] = URLEncoder.encode(value, charset) + fieldMap[key] = URLEncoder.encode(value, charset) } } }