fix(AnalyzeUrl): analyzeFields
This commit is contained in:
@@ -211,24 +211,29 @@ class AnalyzeUrl(
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析QueryMap
|
||||
* 解析QueryMap <key>=<value>
|
||||
* name=
|
||||
* name=name
|
||||
* name=<BASE64> 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user