QNetworkRequestFactory Class

Komfortklasse für die Gruppierung von entfernten Serverendpunkten, die gemeinsame Netzwerkanforderungseigenschaften haben. Mehr...

Kopfzeile: #include <QNetworkRequestFactory>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
Seit: Qt 6.7

Ö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)
QDebug operator<<(QDebug debug, const QNetworkRequestFactory &factory)

Detaillierte Beschreibung

REST-Server haben oft Endpunkte, die die gleichen Header und andere Daten benötigen. Die Gruppierung solcher Endpunkte mit einer QNetworkRequestFactory macht es bequemer, Anfragen an diese Endpunkte zu stellen; beim Erstellen einer neuen Anfrage werden nur die typischerweise variierenden Teile wie Pfad und Abfrageparameter bereitgestellt.

Die grundlegenden Verwendungsschritte von QNetworkRequestFactory sind wie folgt:

  • Instanziierung
  • Einstellen der gemeinsamen Daten für alle Anfragen
  • Ausstellen von Anfragen

Ein Beispiel für die Verwendung:

// 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/models

Member Function Dokumentation

QNetworkRequestFactory::QNetworkRequestFactory()

Erzeugt ein neues QNetworkRequestFactory-Objekt. Verwenden Sie setBaseUrl(), um eine gültige Basis-URL für die Anfragen zu setzen.

Siehe auch QNetworkRequestFactory(const QUrl &baseUrl) und setBaseUrl().

[explicit] QNetworkRequestFactory::QNetworkRequestFactory(const QUrl &baseUrl)

Erzeugt ein neues QNetworkRequestFactory-Objekt, wobei die Basis-URL mit baseUrl initialisiert wird. Die Basis-URL wird verwendet, um nachfolgende Netzwerkanforderungen zu füllen.

Wenn die URL eine Pfadkomponente enthält, wird diese extrahiert und als Basispfad in nachfolgenden Netzwerkanfragen verwendet. Das bedeutet, dass alle Pfade, die bei der Anforderung einzelner Anfragen angegeben werden, an diesen Basispfad angehängt werden, wie unten 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/models

QNetworkRequestFactory::QNetworkRequestFactory(const QNetworkRequestFactory &other)

Erzeugt eine Kopie von other.

[noexcept] QNetworkRequestFactory::QNetworkRequestFactory(QNetworkRequestFactory &&other)

Move-konstruiert die Fabrik aus other.

Hinweis: Das verschobene Objekt other wird in einen teilweise gebildeten Zustand versetzt, in dem die einzigen gültigen Operationen die Zerstörung und die Zuweisung eines neuen Wertes sind.

[noexcept] QNetworkRequestFactory::~QNetworkRequestFactory()

Zerstört 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 konstruiertes 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 verbunden 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 Pfad-"Präfix" für die Pfade verwendet, die bei der Erzeugung der einzelnen Anfragen angegeben werden.

Siehe auch setBaseUrl().

QByteArray QNetworkRequestFactory::bearerToken() const

Gibt das eingestellte Überbringer-Token zurück.

Das Überbringer-Token wird, falls vorhanden, zum Setzen des Authorization: Bearer my_token -Headers für Anfragen verwendet. Dies ist eine übliche Autorisierungskonvention und wird als zusätzliche Annehmlichkeit zur Verfügung gestellt.

Es gibt verschiedene Möglichkeiten, das Überbringer-Token zu erhalten. Zu den Standardmethoden gehören OAuth2 und die Website des Dienstanbieters/Dashboard. Es ist zu erwarten, dass sich das Inhaber-Token im Laufe der Zeit ändert. Wenn es beispielsweise mit einem Refresh-Token aktualisiert wird, stellt das erneute Setzen des neuen Tokens sicher, dass nachfolgende Anfragen den neuesten, gültigen Token erhalten.

Das Vorhandensein des Inhaber-Tokens hat keinen Einfluss auf die Auflistung in commonHeaders(). Wenn commonHeaders() auch die Kopfzeile Authorization auflistet, wird diese überschrieben.

Siehe auch setBearerToken() und commonHeaders().

[since 6.8] void QNetworkRequestFactory::clearAttribute(QNetworkRequest::Attribute attribute)

Löscht attribute, das auf diese Fabrik eingestellt ist.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch attribute() und setAttribute().

[since 6.8] void QNetworkRequestFactory::clearAttributes()

Löscht alle Attribute, die für diese Factory gesetzt wurden.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch attribute() und setAttribute().

void QNetworkRequestFactory::clearBearerToken()

Löscht die Überbringermarke.

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 gesetzten Kopfzeilen zurück.

Siehe auch setCommonHeaders() und clearCommonHeaders().

QNetworkRequest QNetworkRequestFactory::createRequest() const

Gibt eine QNetworkRequest zurück.

Die zurückgegebene Anfrage wird mit den Daten gefüllt, mit denen diese Fabrik konfiguriert wurde.

Siehe auch createRequest(const QUrlQuery&) und createRequest(const QString&, const QUrlQuery&).

QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path) const

Gibt eine QNetworkRequest zurück.

Die URL der zurückgegebenen Anfrage wird durch Anhängen der angegebenen path an die baseUrl (die selbst eine Pfadkomponente haben kann) gebildet.

Siehe auch createRequest(const QString &, const QUrlQuery &), createRequest(), und baseUrl().

QNetworkRequest QNetworkRequestFactory::createRequest(const QUrlQuery &query) const

Gibt eine QNetworkRequest zurück.

Die URL der zurückgegebenen Anfrage wird durch Anhängen der angegebenen query an die baseUrl gebildet.

Siehe auch createRequest(const QString &, const QUrlQuery &), createRequest(), und baseUrl().

QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path, const QUrlQuery &query) const

Gibt eine QNetworkRequest zurück.

Die zurückgegebene Anfrage-URL wird durch Anhängen der angegebenen path und query an die baseUrl (die eine Pfadkomponente haben kann) gebildet.

Wenn die angegebene path Abfrageelemente 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 Fabrik festgelegte Passwort zurück.

Siehe auch setPassword(), password(), clearPassword(), und userName().

[since 6.8] QNetworkRequest::Priority QNetworkRequestFactory::priority() const

Gibt die Priorität zurück, die allen zukünftigen Anfragen zugewiesen wurde, die von dieser Fabrik erstellt wurden.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch setPriority() und QNetworkRequest::priority().

QUrlQuery QNetworkRequestFactory::queryParameters() const

Gibt Abfrageparameter zurück, die zu den Abfrageparametern der einzelnen Anfragen hinzugefügt werden. Die Abfrageparameter werden zu allen potenziellen Abfrageparametern hinzugefügt, die mit den einzelnen createRequest()-Aufrufen bereitgestellt werden.

Anwendungsfälle für die Verwendung von sich wiederholenden Abfrageparametern sind serverabhängig, aber typische Beispiele sind die Spracheinstellung ?lang=en, die Formatspezifikation ?format=json, die API-Versionsspezifikation ?version=1.0 und die API-Schlüsselauthentifizierung.

Siehe auch setQueryParameters(), clearQueryParameters(), und createRequest().

[since 6.8] void QNetworkRequestFactory::setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value)

Setzt den mit attribute verbundenen Wert auf value. Wenn das Attribut bereits gesetzt ist, wird der vorherige Wert ersetzt. Die Attribute werden auf alle zukünftigen Anfragen gesetzt, die von dieser Fabrik 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)

Setzt die Basis-URL, die in einzelnen Anfragen verwendet wird, auf url.

Siehe auch baseUrl().

void QNetworkRequestFactory::setBearerToken(const QByteArray &token)

Setzt den Überbringer-Token auf token.

Siehe auch bearerToken() und clearBearerToken().

void QNetworkRequestFactory::setCommonHeaders(const QHttpHeaders &headers)

Legt headers fest, die für alle Anfragen gleich sind.

Diese Kopfzeilen werden zu den Kopfzeilen der einzelnen Anfragen hinzugefügt. Dies ist ein bequemer Mechanismus zum Festlegen von Kopfzeilen, die sich über Anfragen hinweg wiederholen.

Siehe auch commonHeaders(), clearCommonHeaders(), und createRequest().

void QNetworkRequestFactory::setPassword(const QString &password)

Setzt das Passwort dieser Fabrik auf password.

Das Kennwort wird beim Aufruf von createRequest() in der Anfrage-URL festgelegt. QRestAccessManager / QNetworkAccessManager wird versuchen, diese Anmeldeinformationen zu verwenden, wenn der Server angibt, dass eine Authentifizierung erforderlich ist.

Siehe auch password(), clearPassword(), und userName().

[since 6.8] void QNetworkRequestFactory::setPriority(QNetworkRequest::Priority priority)

Setzt die Priorität für alle zukünftigen Anfragen, die von dieser Fabrik erstellt werden, auf priority.

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 query Parameter fest, die zu den Abfrageparametern der einzelnen Anfragen hinzugefügt werden.

Siehe auch queryParameters() und clearQueryParameters().

void QNetworkRequestFactory::setSslConfiguration(const QSslConfiguration &configuration)

Setzt die SSL-Konfiguration auf configuration.

Siehe auch sslConfiguration().

void QNetworkRequestFactory::setTransferTimeout(std::chrono::milliseconds timeout)

Legt timeout für Überweisungen fest.

Siehe auch transferTimeout(), QNetworkRequest::setTransferTimeout(), und QNetworkAccessManager::setTransferTimeout().

void QNetworkRequestFactory::setUserName(const QString &userName)

Setzt den Benutzernamen dieser Fabrik auf userName.

Der Benutzername wird in der Anfrage-URL festgelegt, wenn createRequest() aufgerufen wird. QRestAccessManager / QNetworkAccessManager wird versuchen, diese Anmeldeinformationen zu verwenden, wenn der Server angibt, dass eine Authentifizierung erforderlich ist.

Siehe auch userName(), clearUserName(), und password().

QSslConfiguration QNetworkRequestFactory::sslConfiguration() const

Gibt die SSL-Konfiguration zurück, die für diese Fabrik festgelegt wurde. Die SSL-Konfiguration wird für jede einzelne Anfrage festgelegt.

Siehe auch setSslConfiguration().

[noexcept] void QNetworkRequestFactory::swap(QNetworkRequestFactory &other)

Tauscht diese Fabrik mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.

std::chrono::milliseconds QNetworkRequestFactory::transferTimeout() const

Gibt die für Übertragungen verwendete Zeitüberschreitung zurück.

Siehe auch setTransferTimeout(), QNetworkRequest::transferTimeout(), und QNetworkAccessManager::transferTimeout().

QString QNetworkRequestFactory::userName() const

Gibt den Benutzernamen zurück, der für diese Fabrik festgelegt wurde.

Siehe auch setUserName(), clearUserName(), und password().

[noexcept] QNetworkRequestFactory &QNetworkRequestFactory::operator=(QNetworkRequestFactory &&other)

Move-assigns other und gibt einen Verweis auf diese Fabrik zurück.

Hinweis: Das verschobene Objekt other wird in einen teilweise gebildeten Zustand versetzt, in dem die einzigen gültigen Operationen die Zerstörung und die Zuweisung eines neuen Wertes sind.

QNetworkRequestFactory &QNetworkRequestFactory::operator=(const QNetworkRequestFactory &other)

Erzeugt eine Kopie von other und gibt einen Verweis auf diese Fabrik zurück.

Verwandte Nicht-Mitglieder

QDebug operator<<(QDebug debug, const QNetworkRequestFactory &factory)

Schreibt factory in den Stream debug.

Siehe auch Debugging-Techniken.

© 2025 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.