HarmonyOS 鸿蒙Next http请求返回数据类型是json文件,如果接收并拿到json文件中的数据
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