QAbstractHttpServer Class
HTTPサーバーを実装するためのサブクラス用API。詳細...
| ヘッダー: | #include <QAbstractHttpServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
| qmake: | QT += httpserver |
| 以下より: | Qt 6.4 |
| 継承元: | QObject |
| 継承元: |
パブリック関数
| 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) |
シグナル
| void | newWebSocketConnection() |
保護関数
| virtual bool | handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
| virtual void | missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
詳細な説明
このクラスをサブクラス化し、handleRequest() およびmissingHandler() をオーバーライドして、HTTP サーバーを作成します。bind() を使用して、サーバーへのすべての着信接続のリスニングを開始します。
これは低レベルの API です。HTTP サーバーを実装するためのより高レベルの API については、QHttpServer を参照してください。
メンバ関数のドキュメント
[explicit] QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
親クラスであるparent を持つQAbstractHttpServerのインスタンスを作成します。
[override virtual noexcept] QAbstractHttpServer::~QAbstractHttpServer()
QAbstractHttpServer のインスタンスを破棄します。
[since 6.8] template <typename Handler> void QAbstractHttpServer::addWebSocketUpgradeVerifier(const QObject *context, Handler &&func)
着信するWebSocketのアップグレードを検証するコールバック関数func を追加します。この関数は、渡されたcontext オブジェクトを使用して呼び出されます。登録されたコールバックのうち少なくとも1つがAccept を返し、かつそれ以前のコールバックがDeny を返していない場合、アップグレードは成功します。コールバックが登録されていない場合、またはすべてのコールバックがPassToNext を返した場合は、missingHandler()関数が呼び出されます。 コールバックは登録された順序で実行され、コールバック自身がこの関数を呼び出すことはできません。
注: func は 、シグネチャQHttpServerWebSocketUpgradeResponse (*)(const QHttpServerRequest &) を実装する必要があります。
server.addWebSocketUpgradeVerifier(
&server, [](const QHttpServerRequest &request) {
if (request.url().path() == "/allowed"_L1)
return QHttpServerWebSocketUpgradeResponse::accept();
else
return QHttpServerWebSocketUpgradeResponse::passToNext();
});この関数は Qt 6.8 で導入されました。
関連項目: QHttpServerRequest 、QHttpServerWebSocketUpgradeResponse 、hasPendingWebSocketConnections()、nextPendingWebSocketConnection()、newWebSocketConnection()、およびmissingHandler()。
bool QAbstractHttpServer::bind(QLocalServer *server)
通信が行われる指定されたQLocalServer server を、HTTPサーバーにバインドします。この関数を、異なるserver のインスタンスを指定して複数回呼び出すことで、複数の接続を処理することが可能です。
この関数を呼び出した後、新しい接続はすべてHTTPサーバーによって処理および転送されます。
この関数を呼び出す前に、server に対して `QLocalServer::listen()` を呼び出すのはユーザーの責任です。server がリスニングしていない場合、何も起こらず、`false ` が返されます。
server が nullptr の場合、false が返されます。
成功した場合、server はこの HTTP サーバーの子として登録され、true が返されます。
「 QLocalServer 」および「QLocalServer::listen()」も参照してください 。
bool QAbstractHttpServer::bind(QTcpServer *server)
送信が行われる指定されたTCPserver を、HTTPサーバーにバインドします。この関数を、異なるTCPserver のインスタンスに対して複数回呼び出すことで、複数の接続やポート(たとえば、SSL接続と非暗号化接続の両方など)を処理することが可能です。
この関数を呼び出した後、新しい接続はすべてHTTPサーバーによって処理され、転送されます。
この関数を呼び出す前に、server に対してQTcpServer::listen() を呼び出すのはユーザーの責任です。server がリスニングしていない場合、何も起こらず、false が返されます。
成功した場合、server はこのHTTPサーバーの子として登録され、true が返されます。
HTTP 2 を使用できるようにするには、引数{ QSslConfiguration::ALPNProtocolHTTP2 } を指定してQSslConfiguration::setAllowedNextProtocols() が呼び出されたQSslServer にバインドしてください。
QTcpServer 、QTcpServer::listen()、およびQSslConfiguration::setAllowedNextProtocols()も参照してください 。
[since 6.9] QHttpServerConfiguration QAbstractHttpServer::configuration() const
このサーバーの一般的な設定パラメータを返します。
この関数は Qt 6.9 で導入されました。
setConfiguration()も参照してください 。
[pure virtual protected] bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
この関数をオーバーライドして、受信する各request を処理します。具体的には、request を検証し、responder に対して適切なレスポンスを返します。request の処理が正常に完了した場合は、true を返してください。このメソッドがfalse を返した場合、その後missingHandler()が呼び出されます。
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
サーバーに保留中のWebSocket接続がある場合は `true ` を返し、そうでない場合は `false` を返します。
newWebSocketConnection()、nextPendingWebSocketConnection()、およびaddWebSocketUpgradeVerifier()も参照してください 。
[since 6.8] QHttp2Configuration QAbstractHttpServer::http2Configuration() const
サーバーの HTTP/2 設定パラメータを返します。
この関数は Qt 6.8 で導入されました。
setHttp2Configuration()も参照してください 。
QList<QLocalServer *> QAbstractHttpServer::localServers() const
このHTTPサーバーのローカルサーバーを返します。
serverPorts()も参照してください 。
[pure virtual protected] void QAbstractHttpServer::missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder)
handleRequest() で処理されなかった各着信request を処理するために、この関数をオーバーライドしてください。この関数は、handleRequest() がfalse を返した場合、または WebSocket のアップグレードが試みられた際に、newWebSocketConnection() への接続がないか、一致する WebSocket 検証子が存在しない場合に呼び出されます。request およびresponder パラメータは、handleRequest() が呼び出された際の引数と同じです。
handleRequest() およびaddWebSocketUpgradeVerifier()も参照してください 。
[signal] void QAbstractHttpServer::newWebSocketConnection()
このシグナルは、新しい WebSocket 接続が利用可能になるたびに発信されます。
hasPendingWebSocketConnections()、nextPendingWebSocketConnection()、およびaddWebSocketUpgradeVerifier()も参照してください 。
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
待機中の次の接続を、接続済みのQWebSocket オブジェクトとして返します。待機中の接続がない状態でこの関数が呼び出された場合、nullptr が返されます。
注: 返されたQWebSocket オブジェクトは 、別のスレッドからは使用できません。
関連項目: newWebSocketConnection()、hasPendingWebSocketConnections()、およびaddWebSocketUpgradeVerifier()。
QList<quint16> QAbstractHttpServer::serverPorts() const
QAbstractHttpServer のこのインスタンスがリスニングしているポートのリストを返します。
この関数は `QObject::children` と同じ動作保証があり、最後に追加されたサーバーがベクトルの最後の要素となります。
servers()も参照してください 。
QList<QTcpServer *> QAbstractHttpServer::servers() const
このHTTPサーバーが接続を処理するTCPおよびSSLサーバーを返します。
serverPorts()も参照してください 。
[since 6.9] void QAbstractHttpServer::setConfiguration(const QHttpServerConfiguration &config)
このサーバーの一般的な設定パラメータを「config 」に設定します。
注: 新しい設定は 、すでに確立されている接続と、今後確立されるすべての接続の両方に適用されます。
この関数は Qt 6.9 で導入されました。
configuration()も参照してください 。
[since 6.8] void QAbstractHttpServer::setHttp2Configuration(const QHttp2Configuration &configuration)
サーバーのHTTP/2設定パラメータを設定します。
次のHTTP/2接続では、指定されたconfiguration が使用されます。
この関数は Qt 6.8 で導入されました。
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.