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. 在芬兰或全世界其他国家的 商标。所有其他商标均属于其各自所有者。