HarmonyOS POST form-data方式body如何组织?

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/http-request-V5

这个文档 GET/POST(app/json)/uploadFile/downloadFile都可以了。但是 POST 请求 "Content-Type":"multipart/form-data" 方式 extraData: JSON|Map(都不行) 服务器报。

FileUploadException: the request was rejected because no multipart boundary was found 

multiFormDataList这个值按理说应该是需要上传的,应该怎么修改?只有key-value的表单数据,此时使用ArrayBuffer的话可以给个例子吗? 如何将key-value的形式写入buffer?

HarmonyOS
2024-11-14 09:06:19
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

如果不是文件,可以试试将key-value转为string后上传示例:

export const objectToQueryString = (params: object) => { 
  let result = "" 
  for (let key in params) { 
    const value = params[key] 
    result += `${key}=${value}&` 
  } 
  result = result.slice(0, -1) 
  return result 
} 
// 封装POST请求 
export const POST = (url: string, params?: object, header?: object): Promise<string> => { 
  return http.createHttp() 
    .request(url, { 
      method: http.RequestMethod.POST, 
      extraData: objectToQueryString(params), 
      header: { 
        ...(header || {}), 
        'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 
      }, 
    }) 
    .then(res => { 
      return res.result.toString() 
    }) 
} 
// 实际调用 
url = '访问地址' 
data = { username: 'CHJOO', password: 'CHJOO Is me' } //传递参数 
POST(url + "/user_login/", { username: this.LoginStudentId, password: this.LoginPassWord }).then(res) => 
{ 
  console.info("res is " + res) 
}
分享
微博
QQ
微信
回复
2024-11-14 15:40:40
相关问题
HarmonyOS post网络请求需要携带body
52浏览 • 1回复 待解决
多 Project 的 HAP 如何组织
185浏览 • 1回复 待解决
HarmonyOS 如何获取form kit传入的参数
81浏览 • 1回复 待解决
HarmonyOS POST请求传参
63浏览 • 1回复 待解决
HarmonyOS @ohos.data.preferences
548浏览 • 1回复 待解决
HarmonyOS http 请求 post 参数问题
1090浏览 • 1回复 待解决