我有一个QWebView,我已经创建了一个QNetworkDiskCache并设置了它。现在我想确保所有的QNetworkRequests总是使用PreferCache而不是PreferNetwork。
我该如何设置它呢?似乎没有一种明显的方式通过
webView->page()->networkAccessManager()当然,我想知道,如果我甚至需要这样做,我想要完成的是:我有一个自定义的浏览器,它连接到一个特殊的内部网站,我希望它几乎永久缓存所有图像,css和js发送的服务器,除非另有通知。
我该如何做到这一点呢?
发布于 2012-02-04 09:32:24
您可以派生类QNetworkAccessManager并重定义其虚拟函数createRequest,如下所示:
QNetworkReply * MyNetworkManager::createRequest(
QNetworkAccessManager::Operation operation,
const QNetworkRequest & originalRequest,
QIODevice * device)
{
QNetworkRequest request = originalRequest;
if(request.attribute(QNetworkRequest::CacheLoadControlAttribute) ==
QNetworkRequest::PreferNetwork)
{
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute,
QNetworkRequest::PreferCache);
}
return QNetworkAccessManager::createRequest(operation, request, device);
}https://stackoverflow.com/questions/9128863
复制相似问题