HarmonyOS通过 rawfile 中内容构造请求失败
通过如下代码获得 rawfile 文件 fd。
return getContext(this).resourceManager.getRawFd(this._dir + "/" + assetPath) 
  .then((rawFile) => { 
    RLogger.debug(TAG, "hit cache " + fileUrl + ", {" + rawFile.fd + ", " + rawFile.length + "}") 
    return new CacheEntry(rawFile.fd, rawFile.length, fileUrl, url) 
  })通过接口 webResopnse.setResponseData(fd) 将rawFile.fd 设置到构造的 webResponse 中,代码如下:
static updateSuccessCacheResponse(cacheEntry: CacheEntry, webResponse: WebResourceResponse): WebResourceResponse { 
  let mimeType = MimeUtils.getMimeType(RequestUtils.getExtensionFromUrl(cacheEntry.remoteUrl)) 
  return RequestUtils.updateSuccessResponse(cacheEntry.fd, mimeType, webResponse) 
} 
private static updateSuccessResponse(data: ArrayBuffer|number, mimeType: string|undefined, webResponse: WebResourceResponse): WebResourceResponse { 
  webResponse.setResponseEncoding('utf-8'); 
  webResponse.setResponseData(data); 
  if (mimeType !== undefined) { 
    webResponse.setResponseMimeType(mimeType); 
  } 
  webResponse.setResponseCode(200); 
  webResponse.setReasonMessage('OK'); 
  webResponse.setResponseHeader([{ 
    headerKey: 'Access-Control-Allow-Origin', 
    headerValue: '*' 
  }]) 
  webResponse.setResponseIsReady(true); 
  return webResponse 
}通过该方法构造的 response 会失败,文件内容无法访问。当使用自己保存的缓存文件,使用 fs.open(path, fs.OpenMode.READ_ONLY) 获取到的 fd 可以成功。
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS 构造传参数失败问题 
1017浏览  • 1回复 待解决
HarmonyOS 子模块中调用getRawFileContent方法获取rawfile失败 
1051浏览  • 1回复 待解决
HarmonyOS 读取本地RawFile文件失败 
2135浏览  • 1回复 待解决
HarmonyOS SoundPool播放rawfile音频失败 
975浏览  • 1回复 待解决
HarmonyOS 如何通过resourceManager构造Resource对象 
1222浏览  • 1回复 待解决
HarmonyOS  webviewcontroller构造函数中的webtag 
788浏览  • 1回复 待解决
Native获取Rawfile的内容并打印 
1849浏览  • 1回复 待解决
HarmonyOS hsp module 在多target模式下中获取rawfile资源失败 
1367浏览  • 1回复 待解决
#鸿蒙通关秘籍# 在HarmonyOS NEXT中如何通过Native层使用pread函数读取Rawfile文件的部分内容? 
838浏览  • 0回复 待解决
Harmonyos js fetch请求失败 
10464浏览  • 2回复 待解决
HarmonyOS 加载raw文件内容失败 
1866浏览  • 1回复 待解决
通过getRawFileContentSync读取rawfile时一直报错:Rawfile path is invalid 
2947浏览  • 1回复 待解决
HarmonyOS 如何读取rawfile文件下json文件的内容? 
1558浏览  • 1回复 待解决
HarmonyOS  http get请求不到内容 
1603浏览  • 1回复 待解决
javaUI 中webview通过布局创建实例失败 
6743浏览  • 1回复 待解决
HarmonyOS 泛型构造方法在ets中的实现 
1153浏览  • 1回复 待解决
读取rawfile下的文件如何读取所有的内容? 
3127浏览  • 1回复 待解决
HarmonyOS  ArkTS中如何实现泛型构造函数 
1953浏览  • 1回复 待解决
HarmonyOS  网络请求https+ip形式的地址请求失败2300060 
1498浏览  • 1回复 待解决
Js 荣耀手机get请求失败 
6776浏览  • 1回复 待解决
HarmonyOS Rawfile中的json文件读取 
1306浏览  • 1回复 待解决
HarmonyOS 在workerThread中通过import表达式导入文件失败 
1041浏览  • 1回复 待解决
Map中可以存入@Builder修饰的构造函数吗 
2494浏览  • 1回复 待解决
HarmonyOS  webview无法通过loadData加载内容 
1413浏览  • 1回复 待解决
HarmonyOS rawfile中的文件如何获取URI 
1324浏览  • 1回复 待解决





















getRawFd这个就是获取rawfile文件所在hap包的fd,而不是当成rawfile文件的fd。rawfile没有句柄,要么通过OpenRowFileConent直接过去,要么把文件放在resfile资源目录,通过文件路径访问。