QAbstractHttpServer Class
API à sous-classer pour mettre en œuvre un serveur HTTP. Plus d'informations...
| 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 : | 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 surchargez handleRequest() et missingHandler() pour créer un serveur HTTP. Utilisez bind() pour commencer à écouter toutes les connexions entrantes vers un serveur.
Il s'agit d'une API de bas niveau, voir QHttpServer pour 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 avec le parent parent.
[override virtual noexcept] QAbstractHttpServer::~QAbstractHttpServer()
Détruit 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 réussit si au moins une fonction de rappel enregistrée renvoie Accept et si aucune fonction de rappel précédente 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 ne peuvent pas appeler cette fonction eux-mêmes.
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 aussi QHttpServerRequest, QHttpServerWebSocketUpgradeResponse, hasPendingWebSocketConnections(), nextPendingWebSocketConnection(), newWebSocketConnection(), et missingHandler().
bool QAbstractHttpServer::bind(QLocalServer *server)
Lier le site QLocalServer server , sur lequel la transmission a lieu, au serveur HTTP. Il est possible d'appeler cette fonction plusieurs fois avec différentes instances de server pour gérer plusieurs connexions.
Après l'appel de cette fonction, chaque nouvelle connexion sera traité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'écoute pas, rien ne se passera et false sera renvoyé.
Si server est nullptr, false est renvoyé.
En cas de succès, server sera parenté à ce serveur HTTP et true sera renvoyé.
Voir aussi QLocalServer et QLocalServer::listen().
bool QAbstractHttpServer::bind(QTcpServer *server)
Lier le TCP server donné, sur lequel la transmission a lieu, au serveur HTTP. Il est possible d'appeler cette fonction plusieurs fois avec différentes instances de TCP server pour gérer plusieurs connexions et ports, par exemple des connexions SSL et non cryptées.
Après l'appel de cette fonction, chaque nouvelle connexion sera traité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'écoute pas, rien ne se passera et false sera renvoyé.
En cas de succès, server sera rattaché à ce serveur HTTP et true sera renvoyé.
Pour permettre l'utilisation de HTTP 2, il faut se lier à un QSslServer où 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érale de ce serveur.
Cette fonction a été introduite dans Qt 6.9.
Voir aussi setConfiguration().
[pure virtual protected] bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
Surcharger cette fonction pour traiter chaque request entrant, en examinant le request et en renvoyant la réponse appropriée à responder. Elle renvoie true si request a été traité avec succès. Si cette méthode renvoie false, missingHandler() sera appelé par la suite.
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
Renvoie true si le serveur a des connexions WebSocket en attente ; sinon, renvoie false.
Voir aussi 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 aussi 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)
Surchargez cette fonction pour traiter chaque request entrant qui n'a pas été traité par handleRequest(). Cette fonction est appelée chaque fois que handleRequest() renvoie false, ou s'il y a une tentative de mise à niveau de WebSocket et qu'il n'y a pas de connexion à newWebSocketConnection() ou qu'il n'y a pas de vérificateurs WebSocket correspondants. Les paramètres request et responder sont les mêmes que ceux avec lesquels handleRequest() a été appelé.
Voir aussi handleRequest() et addWebSocketUpgradeVerifier().
[signal] void QAbstractHttpServer::newWebSocketConnection()
Ce signal est émis chaque fois qu'une nouvelle connexion WebSocket est disponible.
Voir aussi hasPendingWebSocketConnections(), nextPendingWebSocketConnection() et addWebSocketUpgradeVerifier().
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
Renvoie la prochaine connexion en attente sous la forme d'un objet connecté QWebSocket. nullptr est renvoyé 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é par un autre thread.
Voir aussi 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 a 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 à partir desquels ce serveur HTTP gérera les connexions.
Voir aussi serverPorts().
[since 6.9] void QAbstractHttpServer::setConfiguration(const QHttpServerConfiguration &config)
Définit les paramètres de configuration générale de ce serveur à config.
Note : La nouvelle configuration sera appliquée à la fois aux connexions déjà établies et à toutes les connexions suivantes.
Cette fonction a été introduite dans Qt 6.9.
Voir aussi 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'adresse configuration.
Cette fonction a été introduite dans Qt 6.8.
Voir aussi 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.