QAbstractHttpServer 类
API 以子类化来实现 HTTP 服务器。更多信息...
| 头文件 | #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) | |
| void | bind(QTcpServer *server = nullptr) |
| bool | hasPendingWebSocketConnections() const |
| quint16 | listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0) |
| QList<QLocalServer *> | localServers() const |
| std::unique_ptr<QWebSocket> | nextPendingWebSocketConnection() |
| QList<quint16> | serverPorts() |
| QList<QTcpServer *> | servers() const |
| void | sslSetup(const QSslCertificate &certificate, const QSslKey &privateKey, QSsl::SslProtocol protocol = QSsl::SecureProtocols) |
| void | sslSetup(const QSslConfiguration &sslConfiguration) |
信号
| void | newWebSocketConnection() |
保护函数
| virtual bool | handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
| virtual void | missingHandler(const QHttpServerRequest &request, QHttpServerResponder &&responder) = 0 |
成员函数文档
[显式] QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
使用父对象 parent 创建 QAbstractHttpServer 的一个实例。
void QAbstractHttpServer::bind(QTcpServer *server = nullptr)
将HTTP服务器绑定到给定的TCP 服务器 上,数据传输将通过此服务器进行。可以多次调用此函数,使用不同的TCP 服务器 实例来处理多个连接和端口,例如同时处理SSL和非加密连接。
调用此函数后,每个新建的连接将由HTTP服务器处理和转发。
用户负责在该服务器 上调用 QTcpServer::listen()。
如果服务器 为null,则将构造一个新的默认TCP服务器,它将在随机端口和所有接口上监听。
服务器 将成为此HTTP服务器的父级。
另请参阅 QTcpServer 和 QTcpServer::listen。
[纯虚保护] bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
重载此函数以处理每个传入的请求,通过检查请求并向responder发送适当的响应。如果请求处理成功,则返回true。如果此方法返回false,则在之后将调用missingHandler()。
必须在返回true之前将此函数从responder移出。
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
如果服务器有挂起的WebSocket连接,则返回true;否则返回false。
另请参阅 newWebSocketConnection() 和 nextPendingWebSocketConnection。
QHostAddress &address = QHostAddress::Any, quint16 port = 0)
尝试将QTcpServer 绑定到address 和port。
成功时返回服务器端口号,否则返回0。
QList<QLocalServer *> QAbstractHttpServer::localServers() const
返回此HTTP服务器的子TCP服务器列表。
另请参阅 serverPorts。
[纯虚保护] void QAbstractHttpServer::missingHandler(const QHttpServerRequest &request, QHttpServerResponder &&responder)
每次handleRequest() 返回false时将调用此函数。请求和响应参数与调用handleRequest()时相同。
[信号] void QAbstractHttpServer::newWebSocketConnection()
每次有新的WebSocket连接可用时,将发出此信号。
另请参阅 hasPendingWebSocketConnections() 和 nextPendingWebSocketConnection。
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
返回下一个待处理的连接作为已连接的 QWebSocket 对象。如果没有待处理的连接时调用此函数,则返回 nullptr。
注意: 返回的 QWebSocket 对象不能在另一个线程中使用。
另请参阅 newWebSocketConnection() 和 hasPendingWebSocketConnections。
QList<quint16> QAbstractHttpServer::serverPorts()
返回此 QAbstractHttpServer 实例监听的端口号列表。
此函数与 QObject::children 具有相同的保证,最新添加的服务器是向量中的最后一个条目。
另请参阅 servers。
QList<QTcpServer *> QAbstractHttpServer::servers() const
返回此HTTP服务器的子TCP服务器列表。
另请参阅 serverPorts。
void QAbstractHttpServer::sslSetup(const QSslCertificate &certificate, const QSslKey &privateKey, QSsl::SslProtocol protocol = QSsl::SecureProtocols)
使服务器成为 HTTPS 服务器。
下一次 listen() 调用将使用给定的 certificate、privateKey 和 protocol。
void QAbstractHttpServer::sslSetup(const QSslConfiguration &sslConfiguration)
使服务器成为 HTTPS 服务器。
下一次 listen() 调用将使用给定的 sslConfiguration。
© 2024 The Qt Company Ltd. 本文档中的文档贡献属于其各自所有者。本提供的文档按照自由软件基金会发布的 GNU Free Documentation License 1.3 条款进行许可。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰或全世界其他国家的 商标。所有其他商标均属于其各自所有者。