QNetworkRequestFactory Class
Hilfsklasse zum Gruppieren von Endpunkten auf Remote-Servern, die gemeinsame Eigenschaften bei Netzwerkanfragen aufweisen. Mehr...
| Überschrift: | #include <QNetworkRequestFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| Seit: | Qt 6.7 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QNetworkRequestFactory gehört zu den implizit gemeinsam genutzten Klassen.
Öffentliche Funktionen
| QNetworkRequestFactory() | |
| QNetworkRequestFactory(const QUrl &baseUrl) | |
| QNetworkRequestFactory(const QNetworkRequestFactory &other) | |
| QNetworkRequestFactory(QNetworkRequestFactory &&other) | |
| ~QNetworkRequestFactory() | |
(since 6.8) QVariant | attribute(QNetworkRequest::Attribute attribute) const |
(since 6.8) QVariant | attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const |
| QUrl | baseUrl() const |
| QByteArray | bearerToken() const |
(since 6.8) void | clearAttribute(QNetworkRequest::Attribute attribute) |
(since 6.8) void | clearAttributes() |
| void | clearBearerToken() |
| void | clearCommonHeaders() |
| void | clearPassword() |
| void | clearQueryParameters() |
| void | clearUserName() |
| QHttpHeaders | commonHeaders() const |
| QNetworkRequest | createRequest() const |
| QNetworkRequest | createRequest(const QString &path) const |
| QNetworkRequest | createRequest(const QUrlQuery &query) const |
| QNetworkRequest | createRequest(const QString &path, const QUrlQuery &query) const |
| QString | password() const |
(since 6.8) QNetworkRequest::Priority | priority() const |
| QUrlQuery | queryParameters() const |
(since 6.8) void | setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value) |
| void | setBaseUrl(const QUrl &url) |
| void | setBearerToken(const QByteArray &token) |
| void | setCommonHeaders(const QHttpHeaders &headers) |
| void | setPassword(const QString &password) |
(since 6.8) void | setPriority(QNetworkRequest::Priority priority) |
| void | setQueryParameters(const QUrlQuery &query) |
| void | setSslConfiguration(const QSslConfiguration &configuration) |
| void | setTransferTimeout(std::chrono::milliseconds timeout) |
| void | setUserName(const QString &userName) |
| QSslConfiguration | sslConfiguration() const |
| void | swap(QNetworkRequestFactory &other) |
| std::chrono::milliseconds | transferTimeout() const |
| QString | userName() const |
| QNetworkRequestFactory & | operator=(QNetworkRequestFactory &&other) |
| QNetworkRequestFactory & | operator=(const QNetworkRequestFactory &other) |
Verwandte Nicht-Mitglieder
| QDebug | operator<<(QDebug debug, const QNetworkRequestFactory &factory) |
Ausführliche Beschreibung
REST-Server verfügen häufig über Endpunkte, die dieselben Header und andere Daten erfordern. Durch die Gruppierung solcher Endpunkte mit einer QNetworkRequestFactory lassen sich Anfragen an diese Endpunkte bequemer stellen; beim Erstellen einer neuen Anfrage werden nur die typischerweise variierenden Teile wie Pfad und Abfrageparameter angegeben.
Die grundlegenden Schritte zur Verwendung von QNetworkRequestFactory lauten wie folgt:
- Instanziierung
- Festlegen der für alle Anfragen gemeinsamen Daten
- Senden von Anfragen
Ein Anwendungsbeispiel:
// Instantiate a factory somewhere suitable in the application
QNetworkRequestFactory api{{"https://example.com/v1"_L1}};
// Set bearer token
api.setBearerToken("my_token");
// Issue requests (reply handling omitted for brevity)
manager.get(api.createRequest("models"_L1)); // https://example.com/v1/models
// The conventional leading '/' for the path can be used as well
manager.get(api.createRequest("/models"_L1)); // https://example.com/v1/modelsDokumentation der Mitgliedsfunktionen
QNetworkRequestFactory::QNetworkRequestFactory()
Erstellt ein neues `QNetworkRequestFactory`-Objekt. Verwenden Sie ` setBaseUrl()``, um eine gültige Basis-URL für die Anfragen festzulegen.
Siehe auch ` QNetworkRequestFactory(const QUrl &baseUrl)` und ` setBaseUrl()`.
[explicit] QNetworkRequestFactory::QNetworkRequestFactory(const QUrl &baseUrl)
Erstellt ein neues `QNetworkRequestFactory`-Objekt und initialisiert die Basis-URL auf baseUrl. Die Basis-URL wird verwendet, um nachfolgende Netzwerkanfragen zu füllen.
Enthält die URL eine Pfadkomponente, wird diese extrahiert und als Basispfad für nachfolgende Netzwerkanfragen verwendet. Das bedeutet, dass alle bei der Abgabe einzelner Anfragen angegebenen Pfade an diesen Basispfad angehängt werden, wie im Folgenden dargestellt:
// Here the API version v2 is used as the base path:
QNetworkRequestFactory api{{"https://example.com/v2"_L1}};
// ...
manager.get(api.createRequest("models"_L1)); // https://example.com/v2/models
// Equivalent with a leading '/'
manager.get(api.createRequest("/models"_L1)); // https://example.com/v2/modelsQNetworkRequestFactory::QNetworkRequestFactory(const QNetworkRequestFactory &other)
Erstellt eine Kopie von other.
[constexpr noexcept default] QNetworkRequestFactory::QNetworkRequestFactory(QNetworkRequestFactory &&other)
Erstellt die Factory mithilfe eines Move-Konstruktors aus other.
Hinweis: Das Objekt „ other “, aus dem die Konstruktion erfolgt, befindet sich in einem teilweise initialisierten Zustand, in dem die einzigen zulässigen Operationen die Zerstörung und die Zuweisung eines neuen Werts sind.
[noexcept] QNetworkRequestFactory::~QNetworkRequestFactory()
Löscht dieses „ QNetworkRequestFactory “-Objekt.
[since 6.8] QVariant QNetworkRequestFactory::attribute(QNetworkRequest::Attribute attribute) const
Gibt den Wert zurück, der mit „ attribute “ verknüpft ist. Wenn das Attribut nicht gesetzt wurde, wird ein standardmäßig initialisiertes „ QVariant “ zurückgegeben.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch attribute(QNetworkRequest::Attribute, const QVariant &), setAttribute(), clearAttributes() und QNetworkRequest::Attribute.
[since 6.8] QVariant QNetworkRequestFactory::attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const
Gibt den Wert zurück, der mit „ attribute “ verknüpft ist. Wenn das Attribut nicht gesetzt wurde, wird „ defaultValue “ zurückgegeben.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ attribute()“, „ setAttribute()“, „ clearAttributes()“ und „ QNetworkRequest::Attribute “.
QUrl QNetworkRequestFactory::baseUrl() const
Gibt die Basis-URL zurück, die für die einzelnen Anfragen verwendet wird.
Die Basis-URL kann eine Pfadkomponente enthalten. Dieser Pfad wird als „Präfix“ für die Pfade verwendet, die bei der Generierung einzelner Anfragen angegeben werden.
Siehe auch ` setBaseUrl()`.
QByteArray QNetworkRequestFactory::bearerToken() const
Gibt das festgelegte Bearer-Token zurück.
Das Bearer-Token wird, sofern vorhanden, zum Setzen des „ Authorization: Bearer my_token “-Headers für Anfragen verwendet. Dies ist eine gängige Autorisierungskonvention und wird als zusätzlicher Komfort bereitgestellt.
Die Möglichkeiten zum Abrufen des Bearer-Tokens variieren. Zu den Standardmethoden gehören „ OAuth2 “ sowie die Website bzw. das Dashboard des Dienstanbieters. Es ist zu erwarten, dass sich das Bearer-Token im Laufe der Zeit ändert. Wenn es beispielsweise durch ein Refresh-Token aktualisiert wird, stellt das erneute Setzen des neuen Tokens sicher, dass nachfolgende Anfragen über das aktuellste, gültige Token verfügen.
Das Vorhandensein des Bearer-Tokens hat keinen Einfluss auf die Auflistung in „ commonHeaders()“. Wenn „ commonHeaders()“ ebenfalls den Header „ Authorization “ auflistet, wird dieser überschrieben.
Siehe auch „ setBearerToken()“ und „ commonHeaders()“.
[since 6.8] void QNetworkRequestFactory::clearAttribute(QNetworkRequest::Attribute attribute)
Löscht die auf diesen Wert festgelegte „ attribute “.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ attribute()“ und „ setAttribute()“.
[since 6.8] void QNetworkRequestFactory::clearAttributes()
Löscht alle für diese Factory festgelegten Attribute.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ attribute()“ und „ setAttribute()“.
void QNetworkRequestFactory::clearBearerToken()
Löscht das Bearer-Token.
Siehe auch ` bearerToken()`.
void QNetworkRequestFactory::clearCommonHeaders()
Löscht die aktuellen Kopfzeilen.
Siehe auch commonHeaders() und setCommonHeaders().
void QNetworkRequestFactory::clearPassword()
Löscht das für diese Fabrik festgelegte Passwort.
Siehe auch password(), setPassword() und userName().
void QNetworkRequestFactory::clearQueryParameters()
Löscht die Abfrageparameter.
Siehe auch queryParameters().
void QNetworkRequestFactory::clearUserName()
Löscht den für diese Fabrik festgelegten Benutzernamen.
QHttpHeaders QNetworkRequestFactory::commonHeaders() const
Gibt die aktuell festgelegten Header zurück.
Siehe auch setCommonHeaders() und clearCommonHeaders().
QNetworkRequest QNetworkRequestFactory::createRequest() const
Gibt ein ` QNetworkRequest` zurück.
Die zurückgegebene Anfrage wird mit den Daten gefüllt, mit denen diese Factory konfiguriert wurde.
Siehe auch „ createRequest(const QUrlQuery&)“ und „ createRequest(const QString&, const QUrlQuery&)“.
QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path) const
Gibt ein ` QNetworkRequest` zurück.
Die URL der zurückgegebenen Anfrage wird gebildet, indem das angegebene ` path ` an die ` baseUrl ` angehängt wird (die selbst eine Pfadkomponente enthalten kann).
Siehe auch createRequest(const QString &, const QUrlQuery &), createRequest() und baseUrl().
QNetworkRequest QNetworkRequestFactory::createRequest(const QUrlQuery &query) const
Gibt ein ` QNetworkRequest` zurück.
Die URL der zurückgegebenen Anfrage wird gebildet, indem das angegebene ` query ` an die ` baseUrl` angehängt wird.
Siehe auch „ createRequest“ (const QString &, const QUrlQuery &), „ createRequest()“ und „ baseUrl()“.
QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path, const QUrlQuery &query) const
Gibt ein ` QNetworkRequest` zurück.
Die zurückgegebene Anfrage-URL wird gebildet, indem die angegebenen „ path “ und „ query “ an „ baseUrl “ (das möglicherweise eine Pfadkomponente enthält) angehängt werden.
Wenn der angegebene „ path “ Abfrageparameter enthält, werden diese mit den Elementen in „ query “ kombiniert.
Siehe auch createRequest(const QUrlQuery&), createRequest() und baseUrl().
QString QNetworkRequestFactory::password() const
Gibt das für diese Factory festgelegte Passwort zurück.
Siehe auch setPassword(), clearPassword() und userName().
[since 6.8] QNetworkRequest::Priority QNetworkRequestFactory::priority() const
Gibt die Priorität zurück, die allen zukünftigen, von dieser Factory erstellten Anfragen zugewiesen wird.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ setPriority()“ und „ QNetworkRequest::priority()“.
QUrlQuery QNetworkRequestFactory::queryParameters() const
Gibt Abfrageparameter zurück, die den Abfrageparametern einzelner Anfragen hinzugefügt werden. Die Abfrageparameter werden zu allen potenziellen Abfrageparametern hinzugefügt, die mit den einzelnen Aufrufen von ` createRequest()` übergeben werden.
Die Anwendungsfälle für die Verwendung wiederkehrender Abfrageparameter sind serverabhängig, typische Beispiele sind jedoch die Spracheinstellung ?lang=en, die Formatangabe ?format=json, die Angabe der API-Version ?version=1.0 sowie die Authentifizierung mittels API-Schlüssel.
Siehe auch setQueryParameters(), clearQueryParameters() und createRequest().
[since 6.8] void QNetworkRequestFactory::setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value)
Setzt den Wert, der mit „ attribute “ verknüpft ist, auf „ value “. Ist das Attribut bereits gesetzt, wird der bisherige Wert überschrieben. Die Attribute werden für alle zukünftigen Anfragen gesetzt, die von dieser Factory erstellt werden.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ attribute()“, „ clearAttribute()“, „ clearAttributes()“ und „ QNetworkRequest::Attribute “.
void QNetworkRequestFactory::setBaseUrl(const QUrl &url)
Legt die in einzelnen Anfragen verwendete Basis-URL auf url fest.
Siehe auch baseUrl().
void QNetworkRequestFactory::setBearerToken(const QByteArray &token)
Setzt das Bearer-Token auf token.
Siehe auch bearerToken() und clearBearerToken().
void QNetworkRequestFactory::setCommonHeaders(const QHttpHeaders &headers)
Legt die „ headers “ fest, die für alle Anfragen gelten.
Diese Header werden zu den Headern der einzelnen Anfragen hinzugefügt. Dies ist ein Komfortmechanismus zum Setzen von Headern, die sich über mehrere Anfragen hinweg wiederholen.
Siehe auch „ commonHeaders()“, „ clearCommonHeaders()“ und „ createRequest()“.
void QNetworkRequestFactory::setPassword(const QString &password)
Legt das Passwort dieser Factory auf „ password “ fest.
Das Passwort wird in der Anfrage-URL festgelegt, wenn createRequest() aufgerufen wird. Die QRestAccessManager / QNetworkAccessManager versuchen, diese Anmeldedaten zu verwenden, wenn der Server anzeigt, dass eine Authentifizierung erforderlich ist.
Siehe auch password(), clearPassword() und userName().
[since 6.8] void QNetworkRequestFactory::setPriority(QNetworkRequest::Priority priority)
Legt die Priorität für alle zukünftigen Anfragen, die von dieser Factory erstellt werden, auf „ priority “ fest.
Die Standardpriorität ist „ QNetworkRequest::NormalPriority “.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ priority()“ und „ QNetworkRequest::setPriority()“.
void QNetworkRequestFactory::setQueryParameters(const QUrlQuery &query)
Legt die Parameter „ query “ fest, die den Abfrageparametern einzelner Anfragen hinzugefügt werden.
Siehe auch „ queryParameters()“ und „ clearQueryParameters()“.
void QNetworkRequestFactory::setSslConfiguration(const QSslConfiguration &configuration)
Stellt die SSL-Konfiguration auf „ configuration “ ein.
Siehe auch sslConfiguration().
void QNetworkRequestFactory::setTransferTimeout(std::chrono::milliseconds timeout)
Legt „ timeout “ fest, die für Übertragungen verwendet werden.
Siehe auch „ transferTimeout()“, „ QNetworkRequest::setTransferTimeout()“ und „ QNetworkAccessManager::setTransferTimeout()“.
void QNetworkRequestFactory::setUserName(const QString &userName)
Legt den Benutzernamen dieser Factory auf „ userName “ fest.
Der Benutzername wird bei Aufruf von ` createRequest()` in der Anfrage-URL festgelegt. Die Methoden ` QRestAccessManager ` und ` QNetworkAccessManager ` versuchen, diese Anmeldedaten zu verwenden, wenn der Server angibt, dass eine Authentifizierung erforderlich ist.
Siehe auch userName(), clearUserName() und password().
QSslConfiguration QNetworkRequestFactory::sslConfiguration() const
Gibt die für diese Factory festgelegte SSL-Konfiguration zurück. Die SSL-Konfiguration wird für jede einzelne Anfrage festgelegt.
Siehe auch setSslConfiguration().
[noexcept] void QNetworkRequestFactory::swap(QNetworkRequestFactory &other)
Ersetzt diese Fabrik durch other. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
std::chrono::milliseconds QNetworkRequestFactory::transferTimeout() const
Gibt das für Übertragungen verwendete Timeout zurück.
Siehe auch setTransferTimeout(), QNetworkRequest::transferTimeout() und QNetworkAccessManager::transferTimeout().
QString QNetworkRequestFactory::userName() const
Gibt den für diese Factory festgelegten Benutzernamen zurück.
Siehe auch setUserName(), clearUserName() und password().
[noexcept] QNetworkRequestFactory &QNetworkRequestFactory::operator=(QNetworkRequestFactory &&other)
Weist „ other “ per Move-Zuweisung zu und gibt eine Referenz auf diese Factory zurück.
Hinweis: Das aus dem Move-Vorgang stammende Objekt other befindet sich in einem teilweise initialisierten Zustand, in dem die einzigen zulässigen Operationen die Zerstörung und die Zuweisung eines neuen Werts sind.
QNetworkRequestFactory &QNetworkRequestFactory::operator=(const QNetworkRequestFactory &other)
Erstellt eine Kopie von „ other “ und gibt eine Referenz auf diese Factory zurück.
Verwandte Nicht-Mitglieder
QDebug operator<<(QDebug debug, const QNetworkRequestFactory &factory)
Schreibt „ factory “ in den Stream „ debug “.
Siehe auch „Debugging-Techniken“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.