6 #ifndef SWIFT_MISC_NETWORKUTILS_H
7 #define SWIFT_MISC_NETWORKUTILS_H
9 #include <QNetworkAccessManager>
10 #include <QNetworkRequest>
12 #include <QStringList>
23 namespace swift::misc::network
40 static int getTimeoutMs();
43 static int getLongTimeoutMs();
50 static bool canConnect(
const QString &hostAddress,
int port, QString &message,
int timeoutMs = getTimeoutMs());
57 int timeoutMs = getTimeoutMs());
60 static bool canConnect(
const QString &url, QString &message,
int timeoutMs = getTimeoutMs());
63 static bool canConnect(
const QUrl &url, QString &message,
int timeoutMs = getTimeoutMs());
66 static bool canConnect(
const QUrl &url,
int timeoutMs = getTimeoutMs());
69 static QStringList getKnownLocalIpV4Addresses();
72 static bool isValidIPv4Address(
const QString &candidate);
75 static bool isValidIPv6Address(
const QString &candidate);
78 static bool isValidPort(
const QString &port);
81 static QString buildUrl(
const QString &protocol,
const QString &server,
const QString &baseUrl,
82 const QString &serviceUrl);
85 static void setSwiftUserAgent(QNetworkRequest &request,
const QString &userAgentDetails = {});
88 static void addDebugFlag(QUrlQuery &qurl);
91 static QNetworkRequest getSwiftNetworkRequest(
const QUrl &url, RequestType type = Get,
92 const QString &userAgentDetails = {});
95 static QNetworkRequest getSwiftNetworkRequest(
const QNetworkRequest &request,
96 const QString &userAgentDetails = {});
99 static qint64 lastModifiedMsSinceEpoch(
const QNetworkReply *nwReply);
102 static QDateTime lastModifiedDateTime(
const QNetworkReply *nwReply);
105 static qint64 lastModifiedSinceNow(
const QNetworkReply *nwReply);
108 static qint64 requestDuration(
const QNetworkReply *nwReply);
111 static int getHttpStatusCode(QNetworkReply *nwReply);
125 static bool isHttpStatusRedirect(QNetworkReply *nwReply);
128 static QUrl getHttpRedirectUrl(QNetworkReply *nwReply);
131 static QString removeHtmlPartsFromPhpErrorMessage(
const QString &errorMessage);
134 static bool looksLikePhpErrorMessage(
const QString &errorMessage);
137 static const QString &networkOperationToString(QNetworkAccessManager::Operation operation);
Utilities, e.g. checking whether a network connection can be established.
Value object encapsulating information of a server.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.