QAbstractHttpServer Class
API à sous-classer pour implémenter un serveur HTTP. En savoir plus...
| En-tête : | #include <QAbstractHttpServer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
| qmake : | QT += httpserver |
| Depuis : | Qt 6.4 |
| Hérite de : | QObject |
| Hérité par : |
Fonctions publiques
| 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) |
Signaux
| void | newWebSocketConnection() |
Fonctions protégées
| virtual bool | handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
| virtual void | missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
Description détaillée
Sous-classez cette classe et redéfinissez les méthodes ` handleRequest()` et ` missingHandler()` pour créer un serveur HTTP. Utilisez la méthode ` bind()` pour commencer à écouter toutes les connexions entrantes vers un serveur.
Il s'agit d'une API de bas niveau ; consultez QHttpServer pour découvrir une API de plus haut niveau permettant de mettre en œuvre un serveur HTTP.
Documentation des fonctions membres
[explicit] QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
Crée une instance de `QAbstractHttpServer` dont le parent est ` parent`.
[override virtual noexcept] QAbstractHttpServer::~QAbstractHttpServer()
Supprime une instance de ` QAbstractHttpServer`.
[since 6.8] template <typename Handler> void QAbstractHttpServer::addWebSocketUpgradeVerifier(const QObject *context, Handler &&func)
Ajoute une fonction de rappel func qui vérifie les mises à niveau WebSocket entrantes. Elle est appelée à l'aide de l'objet context fourni. Une mise à niveau est réussie si au moins un rappel enregistré renvoie Accept et qu'aucun rappel précédent n'a renvoyé Deny. Si aucun rappel n'est enregistré, ou si tous renvoient PassToNext, la fonction missingHandler() est appelée. Les callbacks sont exécutés dans l’ordre dans lequel ils ont été enregistrés, et ils ne peuvent pas appeler eux-mêmes cette fonction.
Remarque : la fonction ` func ` doit implémenter la signature ` QHttpServerWebSocketUpgradeResponse (*)(const QHttpServerRequest &)`.
server.addWebSocketUpgradeVerifier(
&server, [](const QHttpServerRequest &request) {
if (request.url().path() == "/allowed"_L1)
return QHttpServerWebSocketUpgradeResponse::accept();
else
return QHttpServerWebSocketUpgradeResponse::passToNext();
});Cette fonction a été introduite dans Qt 6.8.
Voir également QHttpServerRequest, QHttpServerWebSocketUpgradeResponse, hasPendingWebSocketConnections(), nextPendingWebSocketConnection(), newWebSocketConnection() et missingHandler().
bool QAbstractHttpServer::bind(QLocalServer *server)
Associe l'QLocalServer server , sur laquelle s'effectue la transmission, au serveur HTTP. Il est possible d'appeler cette fonction plusieurs fois avec différentes instances de server pour gérer plusieurs connexions.
Une fois cette fonction appelée, chaque nouvelle connexion sera gérée et transmise par le serveur HTTP.
Il incombe à l’utilisateur d’appeler ` QLocalServer::listen()` sur ` server ` avant d’appeler cette fonction. Si ` server ` n’est pas à l’écoute, rien ne se passera et ` false ` sera renvoyé.
Si server est nullptr, la valeur false est renvoyée.
En cas de réussite, le server sera rattaché à ce serveur HTTP et true est renvoyé.
Voir également QLocalServer et QLocalServer::listen().
bool QAbstractHttpServer::bind(QTcpServer *server)
Associe l'server TCP donnée, sur laquelle s'effectue la transmission, au serveur HTTP. Il est possible d'appeler cette fonction plusieurs fois avec différentes instances de l'server TCP afin de gérer plusieurs connexions et ports, par exemple à la fois des connexions SSL et des connexions non chiffrées.
Une fois cette fonction appelée, toute nouvelle connexion sera gérée et transmise par le serveur HTTP.
Il incombe à l’utilisateur d’appeler ` QTcpServer::listen()` sur ` server ` avant d’appeler cette fonction. Si ` server ` n’est pas à l’écoute, rien ne se passera et ` false ` sera renvoyé.
En cas de succès, le server sera associé à ce serveur HTTP et true est renvoyé.
Pour permettre l’utilisation d’HTTP 2, liez-vous à un ` QSslServer ` pour lequel ` QSslConfiguration::setAllowedNextProtocols()` a été appelé avec les arguments ` { QSslConfiguration::ALPNProtocolHTTP2 }`.
Voir également QTcpServer, QTcpServer::listen() et QSslConfiguration::setAllowedNextProtocols().
[since 6.9] QHttpServerConfiguration QAbstractHttpServer::configuration() const
Renvoie les paramètres de configuration généraux de ce serveur.
Cette fonction a été introduite dans Qt 6.9.
Voir également ` setConfiguration()`.
[pure virtual protected] bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
Redéfinissez cette fonction pour traiter chaque requête entrante request, en analysant l'request et en renvoyant la réponse appropriée à responder. Renvoyez true si la request a été traitée avec succès. Si cette méthode renvoie false, la fonction missingHandler() sera appelée par la suite.
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
Renvoie « true » si le serveur a des connexions WebSocket en attente ; sinon, renvoie « false ».
Voir également newWebSocketConnection(), nextPendingWebSocketConnection() et addWebSocketUpgradeVerifier().
[since 6.8] QHttp2Configuration QAbstractHttpServer::http2Configuration() const
Renvoie les paramètres de configuration HTTP/2 du serveur.
Cette fonction a été introduite dans Qt 6.8.
Voir également setHttp2Configuration().
QList<QLocalServer *> QAbstractHttpServer::localServers() const
Renvoie les serveurs locaux de ce serveur HTTP.
Voir aussi serverPorts().
[pure virtual protected] void QAbstractHttpServer::missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder)
Redéfinissez cette fonction pour gérer chaque requête « request » entrante qui n'a pas été traitée par la fonction « handleRequest() ». Cette fonction est appelée chaque fois que la fonction « handleRequest() » renvoie la valeur « false », ou en cas de tentative de mise à niveau WebSocket alors qu'il n'y a aucune connexion vers « newWebSocketConnection() » ou qu'il n'existe aucun vérificateur WebSocket correspondant. Les paramètres « request » et « responder » sont les mêmes que ceux fournis lors de l'appel de la fonction « handleRequest() ».
Voir également handleRequest() et addWebSocketUpgradeVerifier().
[signal] void QAbstractHttpServer::newWebSocketConnection()
Ce signal est émis chaque fois qu'une nouvelle connexion WebSocket est disponible.
Voir également hasPendingWebSocketConnections(), nextPendingWebSocketConnection() et addWebSocketUpgradeVerifier().
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
Renvoie la prochaine connexion en attente sous la forme d'un objet ` QWebSocket ` connecté. La valeur ` nullptr ` est renvoyée si cette fonction est appelée alors qu'il n'y a aucune connexion en attente.
Remarque : l’objet ` QWebSocket ` renvoyé ne peut pas être utilisé depuis un autre thread.
Voir également newWebSocketConnection(), hasPendingWebSocketConnections() et addWebSocketUpgradeVerifier().
QList<quint16> QAbstractHttpServer::serverPorts() const
Renvoie la liste des ports sur lesquels cette instance de ` QAbstractHttpServer ` est à l'écoute.
Cette fonction offre la même garantie que ` QObject::children` : le dernier serveur ajouté est la dernière entrée du vecteur.
Voir aussi servers().
QList<QTcpServer *> QAbstractHttpServer::servers() const
Renvoie les serveurs TCP et SSL dont ce serveur HTTP gérera les connexions.
Voir également serverPorts().
[since 6.9] void QAbstractHttpServer::setConfiguration(const QHttpServerConfiguration &config)
Définit les paramètres de configuration généraux de ce serveur sur config.
Remarque : la nouvelle configuration s'appliquera à la fois aux connexions déjà établies et à toutes les connexions futures.
Cette fonction a été introduite dans Qt 6.9.
Voir également configuration().
[since 6.8] void QAbstractHttpServer::setHttp2Configuration(const QHttp2Configuration &configuration)
Définit les paramètres de configuration HTTP/2 du serveur.
La prochaine connexion HTTP/2 utilisera l'configuration spécifiée.
Cette fonction a été introduite dans Qt 6.8.
Voir également 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.