HarmonyOS 编写接口脚本在进行json解析时一直提示类型不对?

编写接口脚本在进行json解析时一直提示类型不对,需要可以运行的接口脚本的demo。

请求方式:

POST请求头Header参数;

u\_udid是string设备唯一id;

e\_efrom是string和事件efrom一致;

u\_sysOs是string操作系统;

u\_timestamp是string时间戳;

u\_sign是string签名;

u\_userId是Integer用户id,未登陆时默认传0。

接口参数:

img是MultipartFile 文件流;

tcode是String计数模板简称。

阅读 489
1 个回答

1、创建一个工具类目录utils,在子目录下创建文件HttpUtil:

import http from '@ohos.net.http';

export function httpRequestGet(url: string): Promise<ResponseResult> {
  let httpRequest = http.createHttp();
  let responseResult = httpRequest.request(url, {
    method: http.RequestMethod.GET,
    readTimeout: Const.HTTP_READ_TIMEOUT,
    header: {
      'Content-Type': ContentType.JSON
    },
    connectTimeout: Const.HTTP_READ_TIMEOUT,
    extraData: {}
  });
  let serverData: ResponseResult = new ResponseResult();
  // Processes the data and returns.
  return responseResult.then((value: http.HttpResponse) => {
    if (value.responseCode === Const.HTTP_CODE_200) {
      // Obtains the returned data.
      let result = `${value.result}`;
      let resultJson: ResponseResult = JSON.parse(result);
      if (resultJson.code === Const.SERVER_CODE_SUCCESS) {
        serverData.data = resultJson.data;
      }
      serverData.code = resultJson.code;
      serverData.msg = resultJson.msg;
    } else {
      serverData.msg = `${$r('app.string.http_error_message')}&${value.responseCode}`;
    }
    return serverData;
  }).catch(() => {
    serverData.msg = $r('app.string.http_error_message');
    return serverData;
  })
}

2、在需要的地方可以这样引用:

import { httpRequestGet } from '../common/utils/HttpUtil';

也可以参考使用官方的api自行实现业务逻辑,文档考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-http-V5\#httprequest

或者使用三方库axios来实现,文档参考:https://ohpm.openharmony.cn/\#/cn/detail/@ohos%2Faxios

logo
HarmonyOS
子站问答
访问
宣传栏