QAbstractHttpServer Class
API, die als Unterklasse implementiert werden muss, um einen HTTP-Server zu realisieren. Mehr...
| Header: | #include <QAbstractHttpServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
| qmake: | QT += httpserver |
| Seit: | Qt 6.4 |
| Erbt von: | QObject |
| Vererbt an: |
Öffentliche Funktionen
| QAbstractHttpServer(QObject *parent = nullptr) | |
| virtual | ~QAbstractHttpServer() override |
(since 6.8) void | addWebSocketUpgradeVerifier(const QObject *context, Handler &&func) |
| bool | bind(QLocalServer *server) |
| bool | bind(QTcpServer *server) |
(since 6.9) QHttpServerConfiguration | configuration() const |
| bool | hasPendingWebSocketConnections() const |
(since 6.8) QHttp2Configuration | http2Configuration() const |
| QList<QLocalServer *> | localServers() const |
| std::unique_ptr<QWebSocket> | nextPendingWebSocketConnection() |
| QList<quint16> | serverPorts() const |
| QList<QTcpServer *> | servers() const |
(since 6.9) void | setConfiguration(const QHttpServerConfiguration &config) |
(since 6.8) void | setHttp2Configuration(const QHttp2Configuration &configuration) |
Signale
| void | newWebSocketConnection() |
Geschützte Funktionen
| virtual bool | handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
| virtual void | missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
Ausführliche Beschreibung
Erstellen Sie eine Unterklasse dieser Klasse und überschreiben Sie die Methoden „ handleRequest()“ und „ missingHandler()“, um einen HTTP-Server zu erstellen. Verwenden Sie die Methode „ bind()“, um das Abhören aller eingehenden Verbindungen an einen Server zu starten.
Dies ist eine Low-Level-API. Eine High-Level-API zur Implementierung eines HTTP-Servers finden Sie unter ` QHttpServer `.
Dokumentation zu den Member-Funktionen
[explicit] QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
Erstellt eine Instanz von `QAbstractHttpServer` mit dem übergeordneten ` parent`.
[override virtual noexcept] QAbstractHttpServer::~QAbstractHttpServer()
Löst eine Instanz von „ QAbstractHttpServer “ auf.
[since 6.8] template <typename Handler> void QAbstractHttpServer::addWebSocketUpgradeVerifier(const QObject *context, Handler &&func)
Fügt eine Callback-Funktion „ func “ hinzu, die eingehende WebSocket-Upgrades überprüft. Sie wird mithilfe des bereitgestellten „ context “-Objekts aufgerufen. Ein Upgrade ist erfolgreich, wenn mindestens ein registrierter Callback „ Accept “ zurückgibt und kein vorheriger Callback „ Deny “ zurückgegeben hat. Sind keine Callbacks registriert oder geben alle „ PassToNext “ zurück, wird die Funktion „ missingHandler()“ aufgerufen. Callbacks werden in der Reihenfolge ihrer Registrierung ausgeführt und können diese Funktion selbst nicht aufrufen.
Hinweis: Die Funktion „ func “ muss die Signatur „ QHttpServerWebSocketUpgradeResponse (*)(const QHttpServerRequest &) “ implementieren.
server.addWebSocketUpgradeVerifier(
&server, [](const QHttpServerRequest &request) {
if (request.url().path() == "/allowed"_L1)
return QHttpServerWebSocketUpgradeResponse::accept();
else
return QHttpServerWebSocketUpgradeResponse::passToNext();
});Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ QHttpServerRequest“ , „ QHttpServerWebSocketUpgradeResponse “, „ hasPendingWebSocketConnections()“, „ nextPendingWebSocketConnection()“, „ newWebSocketConnection()“ und „ missingHandler()“.
bool QAbstractHttpServer::bind(QLocalServer *server)
Binde die angegebene Verbindung QLocalServer server , über die die Übertragung erfolgt, an den HTTP-Server. Es ist möglich, diese Funktion mehrmals mit verschiedenen Instanzen von server aufzurufen, um mehrere Verbindungen zu verarbeiten.
Nach dem Aufruf dieser Funktion wird jede neue Verbindung vom HTTP-Server verarbeitet und weitergeleitet.
Es liegt in der Verantwortung des Benutzers, vor dem Aufruf dieser Funktion QLocalServer::listen() auf server aufzurufen. Wenn server nicht im Listen-Modus ist, geschieht nichts und es wird false zurückgegeben.
Ist ` server ` `nullptr`, wird `false` zurückgegeben.
Bei Erfolg wird der ` server ` diesem HTTP-Server untergeordnet und ` true ` zurückgegeben.
Siehe auch „ QLocalServer “ und „ QLocalServer::listen()“.
bool QAbstractHttpServer::bind(QTcpServer *server)
Binde die angegebene TCP- server, über die die Übertragung erfolgt, an den HTTP-Server. Es ist möglich, diese Funktion mehrmals mit verschiedenen Instanzen von TCP- server aufzurufen, um mehrere Verbindungen und Ports zu verwalten, beispielsweise sowohl SSL- als auch unverschlüsselte Verbindungen.
Nach dem Aufruf dieser Funktion wird jede neue Verbindung vom HTTP-Server verarbeitet und weitergeleitet.
Es liegt in der Verantwortung des Benutzers, vor dem Aufruf dieser Funktion die Methode ` QTcpServer::listen()` auf dem ` server ` aufzurufen. Wenn ` server ` nicht im Listen-Modus ist, geschieht nichts und ` false ` wird zurückgegeben.
Bei Erfolg wird der server diesem HTTP-Server untergeordnet und true zurückgegeben.
Um die Verwendung von HTTP/2 zu ermöglichen, muss eine Verbindung zu einem „ QSslServer “ hergestellt werden, bei dem „ QSslConfiguration::setAllowedNextProtocols()“ mit den Argumenten „ { QSslConfiguration::ALPNProtocolHTTP2 } “ aufgerufen wurde.
Siehe auch „ QTcpServer“ , „ QTcpServer::listen()“ und „ QSslConfiguration::setAllowedNextProtocols()“.
[since 6.9] QHttpServerConfiguration QAbstractHttpServer::configuration() const
Gibt die allgemeinen Konfigurationsparameter dieses Servers zurück.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch ` setConfiguration()`.
[pure virtual protected] bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
Überschreiben Sie diese Funktion, um jede eingehende Anfrage an request zu verarbeiten, indem Sie den Parameter „ request “ prüfen und die entsprechende Antwort an responder zurücksenden. Geben Sie „ true “ zurück, wenn die Anfrage an request erfolgreich verarbeitet wurde. Wenn diese Methode „ false “ zurückgibt, wird anschließend „ missingHandler()“ aufgerufen.
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
Gibt „ true “ zurück, wenn auf dem Server ausstehende WebSocket-Verbindungen vorhanden sind; andernfalls wird „ false “ zurückgegeben.
Siehe auch newWebSocketConnection(), nextPendingWebSocketConnection() und addWebSocketUpgradeVerifier().
[since 6.8] QHttp2Configuration QAbstractHttpServer::http2Configuration() const
Gibt die HTTP/2-Konfigurationsparameter des Servers zurück.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch ` setHttp2Configuration()`.
QList<QLocalServer *> QAbstractHttpServer::localServers() const
Gibt die lokalen Server dieses HTTP-Servers zurück.
Siehe auch ` serverPorts()`.
[pure virtual protected] void QAbstractHttpServer::missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder)
Überschreiben Sie diese Funktion, um alle eingehenden request -Anfragen zu verarbeiten, die nicht von handleRequest() behandelt wurden. Diese Funktion wird immer dann aufgerufen, wenn handleRequest() den Wert „ false “ zurückgibt oder wenn ein WebSocket-Upgrade-Versuch vorliegt und entweder keine Verbindungen zu newWebSocketConnection() bestehen oder keine passenden WebSocket-Verifizierer vorhanden sind. Die Parameter request und responder entsprechen denen, mit denen handleRequest() aufgerufen wurde.
Siehe auch handleRequest() und addWebSocketUpgradeVerifier().
[signal] void QAbstractHttpServer::newWebSocketConnection()
Dieses Signal wird jedes Mal ausgelöst, wenn eine neue WebSocket-Verbindung verfügbar ist.
Siehe auch hasPendingWebSocketConnections(), nextPendingWebSocketConnection() und addWebSocketUpgradeVerifier().
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
Gibt die nächste ausstehende Verbindung als verbundenes „ QWebSocket “-Objekt zurück. Wird diese Funktion aufgerufen, ohne dass ausstehende Verbindungen vorhanden sind, wird „ nullptr “ zurückgegeben.
Hinweis: Das zurückgegebene ` QWebSocket `-Objekt kann nicht von einem anderen Thread aus verwendet werden.
Siehe auch newWebSocketConnection(), hasPendingWebSocketConnections() und addWebSocketUpgradeVerifier().
QList<quint16> QAbstractHttpServer::serverPorts() const
Gibt die Liste der Ports zurück, auf denen diese Instanz von „ QAbstractHttpServer “ auf eingehende Verbindungen wartet.
Diese Funktion bietet dieselbe Garantie wie ` QObject::children`: Der zuletzt hinzugefügte Server ist der letzte Eintrag im Vektor.
Siehe auch ` servers()`.
QList<QTcpServer *> QAbstractHttpServer::servers() const
Gibt die TCP- und SSL-Server zurück, von denen dieser HTTP-Server Verbindungen verarbeiten wird.
Siehe auch serverPorts().
[since 6.9] void QAbstractHttpServer::setConfiguration(const QHttpServerConfiguration &config)
Legt die allgemeinen Konfigurationsparameter dieses Servers auf „ config “ fest.
Hinweis: Die neue Konfiguration wird sowohl auf bereits bestehende Verbindungen als auch auf alle zukünftigen Verbindungen angewendet.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch configuration().
[since 6.8] void QAbstractHttpServer::setHttp2Configuration(const QHttp2Configuration &configuration)
Legt die HTTP/2-Konfigurationsparameter des Servers fest.
Die nächste HTTP/2-Verbindung verwendet die angegebenen „ configuration “.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch ` http2Configuration()`.
© 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.