QIODevice* DiskCache::prepare(const QNetworkCacheMetaData &metaData) {
QString mime;
- foreach (QNetworkCacheMetaData::RawHeader header, metaData.rawHeaders()) {
+ const auto headers = metaData.rawHeaders();
+ for (const QNetworkCacheMetaData::RawHeader &header : headers) {
// qDebug() << header.first << header.second;
if (header.first.constData() == QLatin1String("Content-Type")) {
mime = header.second;
}
}
- if (mime.startsWith(QLatin1String("image/")))
+ if (mime == QLatin1String("application/json") || mime.startsWith(QLatin1String("image/"))) {
return QNetworkDiskCache::prepare(metaData);
+ }
return 0;
}
+
+QNetworkCacheMetaData DiskCache::metaData(const QUrl &url) {
+ // Remove "key" from query string in order to reuse cache when key changes
+ static const QString keyQueryItem = "key";
+ QUrlQuery q(url);
+ if (q.hasQueryItem(keyQueryItem)) {
+ q.removeQueryItem(keyQueryItem);
+ QUrl url2(url);
+ url2.setQuery(q);
+ return QNetworkDiskCache::metaData(url2);
+ }
+
+ return QNetworkDiskCache::metaData(url);
+}