HarmonyOS 鸿蒙Next httpRequest 接口同时上传业务参数字段和图片上传不了

HarmonyOS 鸿蒙Next httpRequest 接口同时上传业务参数字段和图片上传不了

安卓原生okhttp支持业务字段和图片一起post请求到后台,目前鸿蒙请求不成功。 目前鸿蒙使用httpRequest   multiFormDataList方式提交不成功。

2 回复

可以参考如下:

import { BusinessError } from '@ohos.base';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { rcp } from '@kit.RemoteCommunicationKit';
import { util } from '@kit.ArkTS';
let encoder = new util.TextEncoder();
let uploadUrl: string = 'uploadUrl';
function testRcpMultiPartUpload(): void {
  let multiFormFieldValue1 = buildMultipartFormFieldValue('1.txt', '111', 'text/plain');
  let multiFormFieldValue2 = buildMultipartFormFieldValue('2.txt', '222', 'text/plain');
  let headers: rcp.RequestHeaders = { "content-type": 'multipart/form-data' };
  const session = rcp.createSession();
  const multiForm = new rcp.MultipartForm({ file: [multiFormFieldValue1, multiFormFieldValue2] });
  let req = new rcp.Request(uploadUrl, "POST", headers, multiForm);
  session.fetch(req).then((response) =>
  { hilog.info(0x0000, 'testTag', 'success %{public}s', JSON.stringify(response)); })
    .catch((err: BusinessError) =>
    { hilog.info(0x0000, 'testTag', 'error %{public}s', "err:" + JSON.stringify(err)); })
    .finally(() =>
    { session.close(); });}
function buildMultipartFormFieldValue(fileName: string, content: string, contentType: string): rcp.MultipartFormFieldValue {
  let result: rcp.MultipartFormFieldValue = { remoteFileName: fileName, contentOrPath: { content: encoder.encodeInto(content).buffer }, contentType: contentType }
  return result;
}
@Entry
@Component struct Index {
  @State message: string = 'Hello World';
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() =>
          { testRcpMultiPartUpload(); }) }
      .width('100%') }
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next httpRequest 接口同时上传业务参数字段和图片上传不了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,针对httpRequest接口同时上传业务参数字段和图片上传不了的问题,通常是由于请求格式或数据处理不当导致的。

首先,确保你的httpRequest接口支持多部分表单数据(Multipart Form Data)上传。对于同时包含业务参数字段和图片上传的场景,你需要构建一个多部分表单,其中每个部分可以是文本字段(用于业务参数)或文件字段(用于图片)。

  1. 构建多部分表单:使用HarmonyOS提供的API来创建多部分表单,并分别添加文本字段和文件字段。

  2. 设置正确的Content-Type:确保请求的Content-Type头设置为multipart/form-data,并且包含boundary参数,该参数的值应与构建多部分表单时使用的边界值一致。

  3. 发送请求:通过httpRequest接口发送构建好的多部分表单数据。

  4. 服务器端处理:确保服务器端能够正确解析多部分表单数据,包括文本字段和文件字段。

如果以上步骤正确无误,但问题依旧存在,可能是由于其他因素导致的,如网络问题、服务器端配置错误等。此时,建议检查网络连接、服务器端日志等,以便进一步定位问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部