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 hsp module 在多target模式下中获取rawfile资源失败
102浏览 • 1回复 待解决
Native获取Rawfile的内容并打印
705浏览 • 1回复 待解决
HarmonyOS 如何读取rawfile文件下json文件的内容?
94浏览 • 1回复 待解决
HarmonyOS ArkTS中如何实现泛型构造函数
361浏览 • 1回复 待解决
Harmonyos js fetch请求失败
8509浏览 • 2回复 待解决
通过getRawFileContentSync读取rawfile时一直报错:Rawfile path is invalid
931浏览 • 1回复 待解决
javaUI 中webview通过布局创建实例失败
5509浏览 • 1回复 待解决
读取rawfile下的文件如何读取所有的内容?
1796浏览 • 1回复 待解决
Js 荣耀手机get请求失败
5025浏览 • 1回复 待解决
ArkTS 如何将构造方法保存到 HashMap 中?
524浏览 • 1回复 待解决
HarmonyOS如何解压rawfile中的zip文件
286浏览 • 1回复 待解决
HarmonyOS rawfile 中的大文件如何copy到沙盒中?
95浏览 • 1回复 待解决
HarmonyOS 使用webview展示页面,如何实现拦截某静态文件请求,使用本地rawfile里的文件替换请求
326浏览 • 1回复 待解决
通过网络请求而来的 Cookie 如何同步配置到web中
2044浏览 • 1回复 待解决
HSP中rawfile里的视频不能播放
228浏览 • 1回复 待解决
Map中可以存入@Builder修饰的构造函数吗
1538浏览 • 1回复 待解决
HTTP请求Demo,通过createHttp方法创建一个请求任务,再通过request方法发起网络请求
1095浏览 • 1回复 待解决
HarmonyOS如何获取$rawfile文件在本机中的uri地址?
372浏览 • 1回复 待解决
pthread创建的线程中如何读取rawfile
1878浏览 • 1回复 待解决
API9,Stage模型中获取rawfile中图片的PixelMap
3451浏览 • 1回复 待解决
将rawfile中zip复制并解压到沙箱路径中
1252浏览 • 1回复 待解决
HarmonyOS 自定义组件的私有属性,外部通过构造函数初始化,还能实例化
311浏览 • 1回复 待解决
HarmonyOS如何读取rawfile中的文件的,并返回byte数组
459浏览 • 1回复 待解决
HarmonyOS 资源管理对于rawfile中的文件如何按行读取?
305浏览 • 1回复 待解决
熄屏状态下网络请求失败
1794浏览 • 1回复 待解决
getRawFd这个就是获取rawfile文件所在hap包的fd,而不是当成rawfile文件的fd。rawfile没有句柄,要么通过OpenRowFileConent直接过去,要么把文件放在resfile资源目录,通过文件路径访问。