QAbstractHttpServer Class
API zur Unterklasse, um einen HTTP-Server zu implementieren. Mehr...
Kopfzeile: | #include <QAbstractHttpServer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
qmake: | QT += httpserver |
Seit: | Qt 6.4 |
Erbt: | QObject |
Geerbt von: |
Ö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 |
Detaillierte Beschreibung
Unterklassifizieren Sie diese Klasse und überschreiben Sie handleRequest() und missingHandler(), um einen HTTP-Server zu erstellen. Verwenden Sie bind(), um alle eingehenden Verbindungen zu einem Server abzuhören.
Dies ist eine API auf niedriger Ebene, siehe QHttpServer für eine API auf höherer Ebene zur Implementierung eines HTTP-Servers.
Dokumentation der Mitgliedsfunktionen
[explicit]
QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
Erzeugt eine Instanz von QAbstractHttpServer mit dem übergeordneten parent.
[override virtual noexcept]
QAbstractHttpServer::~QAbstractHttpServer()
Zerstört eine Instanz von QAbstractHttpServer.
[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 verifiziert. Sie wird über das bereitgestellte context Objekt aufgerufen. Ein Upgrade ist erfolgreich, wenn mindestens ein registrierter Callback Accept zurückgibt und kein vorheriger Callback Deny zurückgegeben hat. Wenn keine Rückrufe registriert sind oder alle PassToNext zurückgeben, wird die Funktion missingHandler() aufgerufen. Rückrufe werden in der Reihenfolge ausgeführt, in der sie registriert wurden, und sie können diese Funktion nicht selbst aufrufen.
Hinweis: Die 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)
Bindet das angegebene QLocalServer server , über das die Übertragung erfolgt, an den HTTP-Server. Es ist möglich, diese Funktion mehrere Male mit verschiedenen Instanzen von server aufzurufen, um mehrere Verbindungen zu behandeln.
Nach dem Aufruf dieser Funktion wird jede neue Verbindung vom HTTP-Server bearbeitet und weitergeleitet.
Es liegt in der Verantwortung des Benutzers, QLocalServer::listen() auf server aufzurufen, bevor diese Funktion aufgerufen wird. Wenn server nicht zuhört, passiert nichts und false
wird zurückgegeben.
Wenn die server nullptr ist, wird false zurückgegeben.
Bei Erfolg wird server diesem HTTP-Server untergeordnet und true
zurückgegeben.
Siehe auch QLocalServer und QLocalServer::listen().
bool QAbstractHttpServer::bind(QTcpServer *server)
Bindet den angegebenen TCP server, über den die Übertragung erfolgt, an den HTTP-Server. Es ist möglich, diese Funktion mehrfach mit verschiedenen Instanzen von TCP server aufzurufen, um mehrere Verbindungen und Ports zu behandeln, z.B. sowohl SSL- als auch nicht verschlüsselte Verbindungen.
Nach dem Aufruf dieser Funktion wird jede neue Verbindung vom HTTP-Server bearbeitet und weitergeleitet.
Es liegt in der Verantwortung des Benutzers, QTcpServer::listen() auf server aufzurufen, bevor diese Funktion aufgerufen wird. Wenn server nicht zuhört, passiert nichts und false
wird zurückgegeben.
Bei Erfolg wird server diesem HTTP-Server übergeordnet und true
wird zurückgegeben.
Um die Verwendung von HTTP 2 zu ermöglichen, binden Sie sich an einen QSslServer, 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 des 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 request zu bearbeiten, indem Sie die request prüfen und die entsprechende Antwort an responder zurücksenden. Geben Sie true
zurück, wenn die request erfolgreich bearbeitet wurde. Wenn diese Methode false
zurückgibt, wird anschließend missingHandler() aufgerufen.
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
Gibt true
zurück, wenn der Server noch nicht abgeschlossene WebSocket-Verbindungen hat; andernfalls false
.
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 jede eingehende request zu behandeln, die nicht von handleRequest() behandelt wurde. Diese Funktion wird immer dann aufgerufen, wenn handleRequest() false
zurückgibt oder wenn es einen WebSocket-Upgrade-Versuch gibt und entweder keine Verbindungen zu newWebSocketConnection() bestehen oder keine passenden WebSocket-Prüfer vorhanden sind. Die Parameter request und responder sind die gleichen, mit denen handleRequest() aufgerufen wurde.
Siehe auch handleRequest() und addWebSocketUpgradeVerifier().
[signal]
void QAbstractHttpServer::newWebSocketConnection()
Dieses Signal wird jedes Mal ausgegeben, wenn eine neue WebSocket-Verbindung verfügbar ist.
Siehe auch hasPendingWebSocketConnections(), nextPendingWebSocketConnection(), und addWebSocketUpgradeVerifier().
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
Gibt die nächste anstehende Verbindung als verbundenes QWebSocket Objekt zurück. nullptr
wird zurückgegeben, wenn diese Funktion aufgerufen wird und keine anstehenden Verbindungen bestehen.
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, die diese Instanz von QAbstractHttpServer abhört.
Diese Funktion hat die gleiche 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)
Setzt die allgemeinen Konfigurationsparameter dieses Servers auf config.
Hinweis: Die neue Konfiguration wird sowohl auf bereits bestehende Verbindungen als auch auf alle neuen Verbindungen angewendet.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch configuration().
[since 6.8]
void QAbstractHttpServer::setHttp2Configuration(const QHttp2Configuration &configuration)
Setzt die HTTP/2-Konfigurationsparameter des Servers.
Die nächste HTTP/2-Verbindung wird die angegebene configuration verwenden.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch http2Configuration().
© 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.