HarmonyOS 鸿蒙Next 求一个url拼接方法
HarmonyOS 鸿蒙Next 求一个url拼接方法
求一个方法:传入url,Record,输出拼接了参数的url。
如:输入url:/moment/moments/collect/all_search_zone和param,param定义如下:
const param:Record<string,object|string|number> = {'aaa':['a1','a2'],'bbb':88,'ccc':'ccccc'}
输出/moment/moments/collect/all_search_zone?aaa=a1&aaa=a2&bbb=88&ccc=ccccc
更多关于HarmonyOS 鸿蒙Next 求一个url拼接方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
确认一下描述信息是不是不对,
/moment/moments/collect/all_search_zone?aaa=a1&aaa=a2&bbb=88&ccc=ccccc
aaa 同样的 键值不同的value ?
参考下面简版示例
class OrginalRequest {
names:string[] = ['']
apiversion = ''
service = ''
params = ''
}
function concaturlParamtoString(url:string) {
let req: OrginalRequest = {
names:['a','b'],
apiversion: '2.9',
service: 'searchContentList',
params: '{"size":16,"idx":0,"clientVersion":"v3.1.0"}'
}
let newMap: Map<string, object> = new Map<string, object>(Object.entries(req)) // 对象转数组
let keys: string[] = Object.keys(req)
let sb = ''
keys.forEach((value) => {
if (newMap.get(value) instanceof Array) {
let arr:string[] = newMap.get(value) as string[];
arr.concat()
arr.forEach((item)=>{
sb += (`&${value}=${item}`)
})
} else {
sb += (`&${value}=${getValidateSignValue(newMap.get(value)!.toString())}`)
}
})
let paramsSb = sb.toString().slice(1)
let res = url +'?'+ paramsSb
console.log("yssj:",res)
}
这个函数可忽略,依据自己逻辑
let regex = new RegExp('[a-zA-Z0-9]|[\\u4E00-\\u9FA5]+')
// 正则
function getValidateSignValue(value: string): string {
let sb = ''
for (let i = 0; i < value.length; i++) {
if (regex.test(value.charAt(i))) {
sb += value.charAt(i).toString()
}
}
return sb.toString()
}
更多关于HarmonyOS 鸿蒙Next 求一个url拼接方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中进行URL拼接,你可以使用鸿蒙提供的API或者直接使用Kotlin(假设你在使用鸿蒙的ArkUI框架进行开发,该框架支持Kotlin和eTS语言)中的字符串操作功能。以下是一个简单的URL拼接方法示例,使用Kotlin语言:
fun concatenateUrl(baseUrl: String, path: String, queryParams: Map<String, String>): String {
var url = "$baseUrl$path"
if (queryParams.isNotEmpty()) {
url += "?" + queryParams.entries.joinToString("&") { "${it.key}=${it.value}" }
}
return url
}
// 使用示例
val baseUrl = "https://www.example.com"
val path = "/api/data"
val queryParams = mapOf("key1" to "value1", "key2" to "value2")
val finalUrl = concatenateUrl(baseUrl, path, queryParams)
println(finalUrl) // 输出: https://www.example.com/api/data?key1=value1&key2=value2
上述代码定义了一个concatenateUrl
函数,它接受基础URL、路径和查询参数作为输入,并返回拼接后的完整URL。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,