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

HarmonyOS鸿蒙Next中使用 @ohos.request 进行图片上传,如何能接受到自定义的 response 使用 [@ohos](/user/ohos).request 进行图片上传,如何能接收到自定义的 response

4 回复

可以参考开启on('headerReceive'),其中响应体的 header 和 body 都会在这个 header object 里存放

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-request-0000001860296409#ZH-CN_TOPIC_0000001860296409__onheaderreceive7

可以试一试:

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('###headerReceive', JSON.stringify(header))
      if (header) {
        let body: object = JSON.parse(JSON.stringify(header)).body
        console.log('=====body', JSON.stringify(body))
      }
    })
  }).catch((err: BusinessError) => {
    console.error(`Failed to request the upload. Code: ${err.code}, message: ${err.message}`);
  });
} catch (err) {
  console.error(`Failed to request the upload. err: ${JSON.stringify(err)}`);
}

更多关于HarmonyOS鸿蒙Next中使用 @ohos.request 进行图片上传,如何能接受到自定义的 response的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


接不了好像

在HarmonyOS鸿蒙Next中使用 @ohos.request 进行图片上传时,可以通过配置 responseType'json''text' 来接收服务器返回的自定义响应。具体步骤如下:

  1. 创建请求对象: 使用 @ohos.request 模块创建一个请求对象,并设置请求的URL、方法、头部等信息。

  2. 配置 responseType: 在请求配置中,设置 responseType'json''text',以便根据服务器返回的数据类型进行解析。

  3. 发送请求: 调用请求对象的 send 方法发送请求,并在回调函数中处理服务器返回的响应。

  4. 处理响应: 在回调函数中,通过 response.data 获取服务器返回的自定义响应数据。

示例代码:

import request from '@ohos.request';

let url = 'https://example.com/upload';
let headers = {
    'Content-Type': 'multipart/form-data'
};
let formData = new FormData();
formData.append('file', file); // file 为要上传的图片文件

let options = {
    method: 'POST',
    headers: headers,
    body: formData,
    responseType: 'json' // 或 'text'
};

request.request(url, options).then((response) => {
    console.log('Response:', response.data); // 处理自定义响应
}).catch((error) => {
    console.error('Error:', error);
});

在HarmonyOS鸿蒙Next中使用 @ohos.request 进行图片上传时,可以通过 request.upload 方法发送请求,并在 on('complete') 回调中接收自定义的 response。以下是一个示例代码:

import request from '@ohos.request';

const file = { uri: 'file:///path/to/image.jpg' };
const uploadTask = request.upload({
  url: 'https://example.com/upload',
  files: [file],
  data: { key: 'value' }
});

uploadTask.on('complete', (response) => {
  console.log('Response:', response); // 自定义的response
});

on('complete') 回调中,response 包含了服务器返回的数据,你可以在其中获取自定义的响应内容。

回到顶部