HarmonyOS 鸿蒙Next 求一个url拼接方法

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

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

2 回复

确认一下描述信息是不是不对,

/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

回到顶部