HarmonyOS 鸿蒙Next http请求返回数据类型是json文件,如果接收并拿到json文件中的数据

发布于 1周前 作者 wuwangju 最后一次编辑是 5天前 来自 鸿蒙OS
http.createHttp().request('xxx.json', 
  {
    method: http.RequestMethod.GET,
    header: {
      'Content-Type': 'application/json'
    },
    connectTimeout: 6000,
    readTimeout: 6000,
  }, (err, data) => {
    if (!err) {
    }
  }
);

这是 接口,get请求,可直接调用 这是目前的代码,回调了,但是data不知道如何处理


更多关于HarmonyOS 鸿蒙Next http请求返回数据类型是json文件,如果接收并拿到json文件中的数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

http获取文件文本可以参考如下代码,使用requestInStream获取文本,通过on(‘dataReceive’,()=>{})流式获取数据,on(‘dataEnd’,()=>{})整合文本内容转化json数据:

async httpTest1(): Promise<object>{
    return new Promise((resolve: Function, reject: Function) => {
      let res = new ArrayBuffer(0);
      let httpRequest = http.createHttp();
      httpRequest.on('dataReceive',(data:ArrayBuffer)=>{
        const newRes = new ArrayBuffer(res.byteLength + data.byteLength);
        const resView = new Uint8Array(newRes);
        resView.set(new Uint8Array(res));
        resView.set(new Uint8Array(data), res.byteLength);
        res = newRes;
        console.info('res length: ' + res.byteLength);
      })

      httpRequest.on('dataEnd',()=>{
        try{
          let textDecoderOptions: util.TextDecoderOptions = {
            ignoreBOM : true
          }
          let decoder = util.TextDecoder.create('utf-8',textDecoderOptions);
          let str = decoder.decodeWithStream(new Uint8Array(res.slice(3)));
          let json_str = json.parse(str)
          resolve(json_str)
        }catch (err){
          hilog.error(0x0000, 'testTag','error:' + err);
        }

      })

      httpRequest.requestInStream('www.example.com/test', // 后台服务器地址
        {
          method: http.RequestMethod.GET,
          header: {
            'Content-Type': 'application/json'
          },
          connectTimeout: 6000,
          readTimeout: 6000,
        }, (err, data) => {
          if (!err) {
          }
        }
      );
    })

  }

更多关于HarmonyOS 鸿蒙Next http请求返回数据类型是json文件,如果接收并拿到json文件中的数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,处理HTTP请求并接收返回的JSON数据类型时,你可以使用系统提供的网络请求API以及JSON解析库来完成。

首先,通过HTTP请求库(如ohos.network.http.HttpRequest)发送请求并获取响应。响应内容通常是一个字符串形式的JSON。

接着,使用鸿蒙系统内置的JSON解析库(如ohos.json.JsonFactoryohos.json.JsonObject)来解析这个JSON字符串。你可以通过JsonFactory.createJsonParser()创建一个解析器,然后调用parseFromString()方法将JSON字符串解析为JsonObject

一旦获得了JsonObject对象,你就可以通过get()方法获取其中的具体数据了。例如,如果JSON中有一个名为"name"的字段,你可以使用jsonObject.get("name")来获取其值。

示例代码(简化版):

let httpRequest = new ohos.network.http.HttpRequest();
// 配置请求...
httpRequest.send((err, response) => {
    if (!err) {
        let jsonObject = ohos.json.JsonFactory.createJsonParser().parseFromString(response.text);
        let name = jsonObject.get("name");
        // 使用name...
    }
});

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

回到顶部