获取网络图片,httpRequest.request报错error code

获取网络图片,httpRequest.request报错error code: 2300023, msg: Failed writing received data to disk/application  

httpRequest(urlAddr: string) { 
  let httpRequest = http.createHttp() 
  // httpRequest.on(“headersReceive”, (header: Object) => { 
  // console.info("header: " + JSON.stringify(header)) 
  // }) 
  httpRequest.request(//网络图片地址 
    urlAddr, 
    {“usingCache”:true, 
      // “readTimeout”:60000, 
      // “connectTimeout”:60000, 
      // “usingProtocol”:http.HttpProtocol.HTTP2 
    }, 
    (error, data) => { 
      if (error) { 
        console.log("error code: " + error.code + ", msg: " + error.message) 
      } else { 
        let code = data.responseCode 
        if (ResponseCode.ResponseCode.OK == code) { 
          let res: ArrayBuffer = data.result as ArrayBuffer 
          //通过获取到的uri创建图片源实例。 
          let imageSource = image.createImageSource(res) 
          class tmp { 
            height: number = 100 
            width: number = 100 
          } 
 
          let si: tmp = new tmp() 
          let options: Record<string, number | boolean | tmp> = { 
            'alphaType': 0, // 透明度 
            'editable': false, // 是否可编辑 
            'pixelFormat': 3, // 像素格式 
            'scaleMode': 1, // 缩略值 
            'size': { height: 100, width: 100 } 
          } // 创建图片大小 
          //将图片数据解析为pixelmap,并设置option属性。 
          imageSource.createPixelMap(options).then((pixelMap) => { 
            // 将pixelmap通过状态变量image传递给Image组件,将图片信息加载出来。 
            let item:PictureItem = new PictureItem(0, pixelMap) 
            this.services.push(item) 
          }) 
        } else { 
          console.log("response code: " + code) 
        } 
      } 
    } 
  ) 
  // httpRequest.off("headersReceive") 
  httpRequest.destroy() 
}
HarmonyOS
2024-05-09 22:54:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
e_lion

参考2300023的原因,排查过了:错误码2300023表示向磁盘/应用程序写入接收数据失败,

可能原因有:

1. 目标文件为只读文件,没有写入权限。

2. 下载的文件大小超过5M。

排查过程:

1. 网络图片是直接渲染在image里,不会向本地磁盘写文件,而且给APP的module.json5里添加读写权限“name”: “ohos.permission.WRITE_MEDIA”,“name”: “ohos.permission.READ_NEDIA”,会报错error code: 201, msg: Permission denied。

2. 下载的图片大小只有几百KB,最大的也不会到1M。

3. 这个代码,我是参考官网实现的,春节前还是正常的,没动它,春节后再次使用DevEco Studio在Mate 40pro的单框架鸿蒙系统上运行就报错2300023了,重烧系统后依然报该错误。

分享
微博
QQ
微信
回复
2024-05-10 11:09:15
相关问题
服务卡片image怎么获取网络图片
5202浏览 • 2回复 待解决
Image组件如何加载网络图片
488浏览 • 1回复 待解决
请问Image控件是怎样设置网络图片
8638浏览 • 3回复 已解决
: { request: WebResourceRequest}){} 报错
150浏览 • 1回复 待解决