Qt之QNetworkDiskCache

QNetworkDiskCache是Qt中用于网络数据磁盘缓存的类,继承自QAbstractNetworkCache。它利用QDataStream将URL数据存储在指定的缓存目录,并在插入和更新元数据时写入磁盘。默认最大缓存空间为50MB。在使用前需设置缓存目录,如`/home/test/cacheDir`。通过QNetworkAccessManager设置缓存并调整请求属性,可控制是从缓存还是网络获取数据。
摘要由CSDN通过智能技术生成

QNetworkDiskCache继承自QAbstractNetworkCache,实现了基本的磁盘缓存。

QNetworkDistCache使用QDataStream把url的相关数据存储到cacheDirectory中,在insert()和updateMetaData()中被写入磁盘缓存。

当前还没有实现相同的缓存文件在不同的磁盘缓存之间共享

QNetworkDiskCache默认最大的磁盘缓存空间为50M

在进行网络访问之前要定义好缓存目录。

例如:

QNetworkAccessManager *manager = new QNetworkAccessManager(this);

QNetworkDiskCache *diskcache = new QNetworkDiskCache(this);

diskcache->setCacheDirectory("/home/test/cacheDir");

manager->setCache(diskcache);

当向服务器发送请求时,需要设置从缓存中请求数据还是从network中请求,默认是从network中请求。

例如:

QNetworkRequest request(QUrl(QString("http://qt.nokia.com")));

request.setAttribute(QNetworkRequest::CacheLoadAttribute, QNetworkRequest::PreferCache);

manager->get(request);

判断请求的数据是从Cache获取还是从network获取,可以

void replyFinished(QNetworkReply *reply) {

  QVariant fromCache 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值