Line data Source code
1 : #include "FangNetworkAccessManager.h"
2 :
3 : #include <QNetworkDiskCache>
4 : #include <QStandardPaths>
5 :
6 284 : FangNetworkAccessManager::FangNetworkAccessManager(QObject *parent) :
7 284 : QNetworkAccessManager(parent)
8 : {
9 284 : QNetworkDiskCache* diskCache = new QNetworkDiskCache(this);
10 284 : QString cacheDir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
11 284 : diskCache->setCacheDirectory(cacheDir);
12 284 : if (!cacheDir.isEmpty()) {
13 284 : setCache(diskCache);
14 : }
15 284 : }
16 :
17 12 : QNetworkReply* FangNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest& request, QIODevice* outgoingData)
18 : {
19 12 : QNetworkRequest& req = const_cast<QNetworkRequest&>(request);
20 :
21 : // This SHOULD be the default, but just in case.
22 12 : req.setAttribute(QNetworkRequest::CacheLoadControlAttribute,
23 : QNetworkRequest::PreferNetwork);
24 :
25 : // Mimic Chromium to avoid servers that block non-browser User-Agents.
26 : // Qt WebEngine is Chromium-based, so this is honest enough.
27 12 : req.setHeader(QNetworkRequest::UserAgentHeader,
28 : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36");
29 :
30 : // Required for blogs.gnome.org.
31 12 : req.setRawHeader("Accept",
32 : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
33 :
34 12 : return QNetworkAccessManager::createRequest(op, req, outgoingData);
35 : }
|