通过什么方式获取 HttpRequest.requestInStream 返回的数据

看文档例子:

import http from '@ohos.net.http'; 
import { BusinessError } from '@ohos.base'; 

let httpRequest = http.createHttp(); 
httpRequest.requestInStream("EXAMPLE_URL", (err: BusinessError, data: number) => { 
  if (!err) { 
    console.info("requestInStream OK! ResponseCode is " + JSON.stringify(data)); 
  } else { 
    console.info("requestInStream ERROR : err = " + JSON.stringify(err)); 
  } 
})

请求返回的为httpcode,如果我要获取 字节数据,应该怎样处理?

HarmonyOS
2024-09-11 09:54:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

可尝试参考以下链接获取数据:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/http-request-V5#requestinstream接口开发步骤

以下部分demo:

// 用于订阅HTTP流式响应数据接收事件 
let res = new ArrayBuffer(0); 
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); 
}); 
 
let streamInfo: http.HttpRequestOptions = { 
  method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET 
  // 开发者根据自身业务需要添加header字段 
  header: { 
    'Content-Type': 'application/json' 
  }, 
  // 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定 
  extraData: "data to send", 
  expectDataType: http.HttpDataType.STRING,// 可选,指定返回数据的类型 
  usingCache: true, // 可选,默认为true 
  priority: 1, // 可选,默认为1 
  connectTimeout: 60000, // 可选,默认为60000ms 
  readTimeout: 60000, // 可选,默认为60000ms。若传输的数据较大,需要较长的时间,建议增大该参数以保证数据传输正常终止 
  usingProtocol: http.HttpProtocol.HTTP1_1 // 可选,协议类型默认值由系统自动指定 
} 
 
httpRequest.requestInStream( 
  // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 
  "EXAMPLE_URL", 
  streamInfo, (err: BusinessError, data: number) => { 
  console.error('error:' + JSON.stringify(err)); 
  console.info('ResponseCode :' + JSON.stringify(data)); 
  // 取消订阅HTTP流式响应数据接收事件 
  httpRequest.off('dataReceive'); 
  // 当该请求使用完毕时,调用destroy方法主动销毁 
  httpRequest.destroy(); 
} 
);
分享
微博
QQ
微信
回复
2024-09-11 17:12:47
相关问题
HarmonyOS 设备性能数据获取方式
200浏览 • 1回复 待解决
应用通过什么接口获取设备标识信息
1586浏览 • 1回复 待解决
requestInStream使用问题咨询
464浏览 • 1回复 待解决
如何通过路由方式打开半屏
280浏览 • 1回复 待解决
数据持久化方式有哪些?
768浏览 • 1回复 待解决
request和requestInStream使用边界问题
2231浏览 • 1回复 待解决