HarmonyOS HTTP使用Map传参问题?

let params = new Map<string, string>()
params.set('pageCode', '10000')
let client = http.createHttp()
client.request(Url.BASE_URL + Url.JSON_MODEL, { extraData: params }
  , (err: BusinessError, data: http.HttpResponse) => {
    if (!err) {
      console.info(JSON.stringify(data.result))
    } else {
      console.error(JSON.stringify(err))
    }
  })

Map使用set方法后台无法获取到前端传的参数pageCode

阅读 502
1 个回答

map无法被序列化,不是有效的参数,如需传递map类型的参数,可以把键值用类的形式构建出来,然后用new出一个类对象来传递。

网络请求中的入参参考 HttpRequestOptions.extraData 描述,文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-http-V5\#httprequestoptions

框架的支持度是固定的,技术实现上的实现可以自定义调整,如

1,content-Type’为’application/x-www-form-urlencoded’时,请求提交的信息主体数据应在key和value进行URL转码后按照键值对"key1=value1&key2=value2&key3=value3"的方式进行编码,该字段对应的类型通常为String;

2,content-Type’为’application/json’时,将对象的属性值设置为JSON字符串,{param: jsonStr},获取到接收端获取到param后再解析

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏