首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将QNetworkRequest设置为always PreferCache

将QNetworkRequest设置为always PreferCache
EN

Stack Overflow用户
提问于 2012-02-03 20:45:11
回答 1查看 824关注 0票数 2

我有一个QWebView,我已经创建了一个QNetworkDiskCache并设置了它。现在我想确保所有的QNetworkRequests总是使用PreferCache而不是PreferNetwork。

我该如何设置它呢?似乎没有一种明显的方式通过

代码语言:javascript
运行
复制
webView->page()->networkAccessManager()

当然,我想知道,如果我甚至需要这样做,我想要完成的是:我有一个自定义的浏览器,它连接到一个特殊的内部网站,我希望它几乎永久缓存所有图像,css和js发送的服务器,除非另有通知。

我该如何做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2012-02-04 09:32:24

您可以派生类QNetworkAccessManager并重定义其虚拟函数createRequest,如下所示:

代码语言:javascript
运行
复制
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);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9128863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档