Http接口缓存获取不到缓存数据
原创
烈火 2025-10-21 20:33:28 发布2523 浏览 17 点赞 6 收藏
Http请求是我在代码中设置:
import { http } from '@kit.NetworkKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index{
@State message:string = ''
build() {
Column(){
Button("http缓存").width(100).height(100)
.onClick(()=>{
let httpResponseCache = http.createHttpResponseCache();
let httpRequest = http.createHttp();
httpRequest.request("http://XXXX", (err: BusinessError, data: http.HttpResponse) => {
if (!err) {
httpResponseCache.flush((err: BusinessError) => {
if (err) {
this.message = "message"
console.error('flush fail');
}
this.message = "message"
console.info('flush success');
});
httpRequest.destroy();
} else {
console.error('error:' + JSON.stringify(err));
// 当该请求使用完毕时,开发者务必调用destroy方法主动销毁该JavaScript Object。
httpRequest.destroy();
}
});
})
Button(this.message)
}
}
}
问题是能打印到日志 flush success ,关闭网络重新打开app获取不到缓存数据,这就很奇怪了。
代码没有问题,因为我使用一个链接试了一下正常,为什么在项目里就是不行的。我看了一下差异就在请求头的设置上发现了问题,因为项目需要我在请求头中只有'Content-Type': "application/json"时,无网络加载缓存正常。当请求头增加如'channel': 'harmony'字段时,无网络加载缓存错误,显示错误内容:Couldn't connect to server。
但是服务器接口又必须有请求头,这时我卸载重装再试正常了。
总结:可能因为之前其他缓存影响,导致此IP地址缓存失败,重新清空下浏览器缓存或者重新卸载安装APP就可以了。
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
标签
Http缓存
暂无评论数据
发布
相关推荐
元服务如何获取/设置屏幕亮度?
鸿蒙小助手
9098
0同样使用@State装饰器,有时第三层数据可以更新UI,有时不可以,是什么原因?
鸿蒙小助手
5331
0使用 @Builder数据刷新后UI没有刷新,导致图片错乱怎么解决?
鸿蒙小助手
7381
0如何从native层的子线程同步调用ArkTS方法并获取返回值?
鸿蒙小助手
6695
0@ObservedV2和@Trace装饰的单例class数据,修改后为什么UI不更新?
鸿蒙小助手
1643
0
烈火
青春一去不复返,事业一纵永无成。
10
帖子
1
提问
2239
粉丝
最新发布
HarmonyOS V1到V2迁移,好用!
2026-01-07 15:58:35 发布CodeGenie分析
2026-01-07 15:41:28 发布热门推荐