HarmonyOS 使用 @ohos.request 进行图片上传,如何能接受到自定义的 response

在 APP 中需要上传肖像,上传成功后,后台会给出上传后的信息,如下所示:

{
  "code": 200,
  "msg": "成功",
  "data": {
    "result": {
      "number": 1,
      "url": "https://xxx.jpg"
    },
  "message": "文件上传成功",
  "status": 1
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

而在request.uploadFile的 then 方法中,只能拿到 uploadTask 或 TaskState的数据:

// 将本地应用文件上传至网络服务器
try {
  request.uploadFile(context, uploadConfig)
    .then((uploadTask: request.UploadTask) => {
      uploadTask.on('complete', (taskStates: Array<request.TaskState>) => {
        for (let i = 0; i < taskStates.length; i++) {
          console.info(`upload complete taskState: ${JSON.stringify(taskStates[i])}`);
        }
      });
    })
    .catch((err: BusinessError) => {
      console.error(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`);
    })
} catch (error) {
  let err: BusinessError = error as BusinessError;
  console.error(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

我怎么才能拿到后台返给我的数据呢?

HarmonyOS
2024-12-23 16:13:08
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

可以尝试下如下方法:

try {
  request.uploadFile(getContext(), uploadConfig).then((data: request.UploadTask) => {
    let uploadTask = data;
    uploadTask.on('complete', (taskStates: Array<request.TaskState>) => {
      for (let i = 0; i < taskStates.length; i++) {
        console.info(`upload complete taskState: ${JSON.stringify(taskStates[i])}`);
      }
    });
    uploadTask.on('headerReceive', (header: Object) => {
      console.log('

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
分享
微博
QQ
微信
回复
2024-12-23 19:37:21
相关问题
上传文件后,如何接受后端返回数据
2520浏览 • 1回复 待解决
HarmonyOS 自定义接口如何使用
739浏览 • 1回复 待解决
自定义组件中如何添加图片
3399浏览 • 1回复 待解决
HarmonyOS 图片增加自定义水印
561浏览 • 1回复 待解决
HarmonyOS 自定义图片选择界面
922浏览 • 1回复 待解决
HarmonyOS 自定义组件使用
791浏览 • 1回复 待解决