caching for network requests, regards #26
This commit is contained in:
parent
d34e2e968a
commit
bde317a1a3
2 changed files with 23 additions and 2 deletions
|
|
@ -10,17 +10,28 @@
|
|||
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
#include "mynetworkmanager.hh"
|
||||
#include <QtNetwork/QNetworkDiskCache>
|
||||
|
||||
QNetworkAccessManager* MyNetworkManager::create(QObject *parent) {
|
||||
QNetworkAccessManager *nam = new QNetworkAccessManager(parent);
|
||||
QNetworkAccessManager *nam = new MyNetworkAccessManager(parent);
|
||||
|
||||
connect(nam, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(onSslErrors(QNetworkReply*,QList<QSslError>)));
|
||||
// connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReplyFinished(QNetworkReply*)));
|
||||
|
||||
qDebug("new custom mynetworkManager :)");
|
||||
QNetworkDiskCache* diskCache = new QNetworkDiskCache(parent);
|
||||
diskCache->setCacheDirectory("/tmp");
|
||||
diskCache->setMaximumCacheSize(5*1024*1024); // 5Mo
|
||||
nam->setCache(diskCache);
|
||||
|
||||
return nam;
|
||||
}
|
||||
|
||||
QNetworkReply *MyNetworkAccessManager::createRequest( QNetworkAccessManager::Operation op, const QNetworkRequest & req, QIODevice * outgoingData) {
|
||||
QNetworkRequest request(req);
|
||||
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
|
||||
return QNetworkAccessManager::createRequest(op, request, outgoingData);
|
||||
}
|
||||
|
||||
void MyNetworkManager::onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors) {
|
||||
qDebug("onSslErrors");
|
||||
reply->ignoreSslErrors(errors);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <qdeclarativenetworkaccessmanagerfactory.h>
|
||||
#include <QtNetwork/qnetworkreply.h>
|
||||
#include <QtNetwork/QNetworkAccessManager>
|
||||
|
||||
class MyNetworkManager : public QObject, public QDeclarativeNetworkAccessManagerFactory
|
||||
{
|
||||
|
|
@ -27,4 +28,13 @@ private slots:
|
|||
// void onReplyFinished(QNetworkReply *reply);
|
||||
};
|
||||
|
||||
class MyNetworkAccessManager : public QNetworkAccessManager {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MyNetworkAccessManager(QObject *parent = 0) : QNetworkAccessManager(parent) { }
|
||||
protected:
|
||||
QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0);
|
||||
|
||||
};
|
||||
|
||||
#endif // MYNETWORKMANAGER_HH
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue