QtQuick中设置代理上网及缓存-待续

本文介绍如何在Qt应用中通过自定义MyNetworkAccessManagerFactory来配置网络访问管理器,包括设置代理和缓存策略。通过这种方式可以有效地管理网络请求并减少不必要的数据加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司是内网,需要代理才能上外网。其次cache 避免重复加载的问题。

不过好奇没实现功能。思路应当没有问题,实现?? 待续...

 

-----------------------------------------------------------------------------------以下是正文 -------------------------------------------------------

重载MyNetworkAccessManagerFactory的create函数。

 

QNetworkAccessManager* NetworkAccessManagerFactory::create(QObject* parent)

{
    QNetworkAccessManager* manager = new QNetworkAccessManager(parent);
    QNetworkDiskCache* diskCache = new QNetworkDiskCache(parent);
 
    //设置缓存
    QString dataPath = QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
    QDir().mkpath(dataPath);
    diskCache->setCacheDirectory(dataPath);
    diskCache->setMaximumCacheSize(10*1024*1024);
 
    manager->setCache(diskCache);
 
    //设置代理
    if (!proxyHost.isEmpty())
    {
        qDebug() << "Created QNetworkAccessManager using proxy" << (proxyHost + ":" + QString::number(proxyPort));
        QNetworkProxy proxy(QNetworkProxy::HttpCachingProxy, proxyHost, proxyPort,username,password);
        manager->setProxy(proxy);
    }
 
 
    return manager;
}

 

在main页面 设置网络设置,factory为创建的设置类,具体代码参考qt助手和链接内容

viewer.engine()->setNetworkAccessManagerFactory(&factory);

 

参考:

Qt助手 declarative/cppextensions/networkaccessmanagerfactory

http://www.developer.nokia.com/Community/Wiki/在QML_中使用cache_优化程序性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值