HarmonyOS使用@ohos.request下载文件功能迁移至子线程后下载文件大小为0

在UI线程中做了下载离线资源文件的功能, 未使用TaskPool迁移至子线程前,功能是正常的。 迁移后现在文件大小为0。通过getTaskInfo返回的错误码:

HarmonyOS使用@ohos.request下载文件功能迁移至子线程后下载文件大小为0-鸿蒙开发者社区

返回的任务状态码为:

HarmonyOS使用@ohos.request下载文件功能迁移至子线程后下载文件大小为0-鸿蒙开发者社区

发生ERR_UNKNOWN该如何继续定位?

HarmonyOS
2024-09-06 11:51:17
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

下载任务获取的taskinfo当前没有描述http请求的状态码, 通过hilog的RequestService|RequestKit确认请求发送过程中属于401没有鉴权。具体跟因由于在发送请求的过程中header字段没有附带,导致鉴权不通过返回401。 header的获取由于使用的类依赖context, common.Context是线程隔离的, 需要以传参或者内存共享的形式进行传递, 导致主线程初始化好的header信息,在子线程中获取不到, 当前采用规避方式, 使用传参的形式赋值context, 文件下载可以继续正常进行。总结一下:使用TaskPool进行并行化改造时, 需要关注子线程代码使用的类是不是属于线程隔离的, 譬如本例当中的common.Context。

分享
微博
QQ
微信
回复
2024-09-06 17:21:12
相关问题
使用request下载文件的方式
118浏览 • 1回复 待解决
request下载文件不能覆盖现有文件
1601浏览 • 1回复 待解决
HarmonyOS下载文件报错
100浏览 • 1回复 待解决
如何使用接口下载文件
1808浏览 • 1回复 待解决
如何查看HarmonyOS下载文件
82浏览 • 1回复 待解决
HarmonyOS下载文件失败返回
84浏览 • 1回复 待解决
是否支持iframe下载文件
532浏览 • 1回复 待解决
下载文件打印乱码如何修改
134浏览 • 1回复 待解决
http请求中下载文件报错2300023
1744浏览 • 1回复 待解决
如何用断点续传的方式下载文件
766浏览 • 1回复 待解决
JS UI要怎么下载文件有知道的吗?
4456浏览 • 1回复 待解决
如何使用fuse挂载文件系统
1467浏览 • 1回复 待解决