QAbstractHttpServer 类

API 以子类化来实现 HTTP 服务器。更多信息...

头文件 #include <QAbstractHttpServer>
CMakefind_package(Qt6 REQUIRED COMPONENTS HttpServer)
target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
qmakeQT += httpserver
Qt 6.4
继承自 QObject
继承

QHttpServer

状态技术预览

公共函数

QAbstractHttpServer(QObject *parent = nullptr)
voidbind(QTcpServer *server = nullptr)
boolhasPendingWebSocketConnections() const
quint16listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0)
QList<QLocalServer *>localServers() const
std::unique_ptr<QWebSocket>nextPendingWebSocketConnection()
QList<quint16>serverPorts()
QList<QTcpServer *>servers() const
voidsslSetup(const QSslCertificate &certificate, const QSslKey &privateKey, QSsl::SslProtocol protocol = QSsl::SecureProtocols)
voidsslSetup(const QSslConfiguration &sslConfiguration)

信号

保护函数

virtual boolhandleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0
virtual voidmissingHandler(const QHttpServerRequest &request, QHttpServerResponder &&responder) = 0

详细描述

子类化此类并覆盖 handleRequest() 来创建一个 HTTP 服务器。使用 listen()bind() 来开始监听传入的连接。

成员函数文档

[显式] QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)

使用父对象 parent 创建 QAbstractHttpServer 的一个实例。

void QAbstractHttpServer::bind(QTcpServer *server = nullptr)

将HTTP服务器绑定到给定的TCP 服务器 上,数据传输将通过此服务器进行。可以多次调用此函数,使用不同的TCP 服务器 实例来处理多个连接和端口,例如同时处理SSL和非加密连接。

调用此函数后,每个新建的连接将由HTTP服务器处理和转发。

用户负责在该服务器 上调用 QTcpServer::listen()。

如果服务器 为null,则将构造一个新的默认TCP服务器,它将在随机端口和所有接口上监听。

服务器 将成为此HTTP服务器的父级。

另请参阅 QTcpServerQTcpServer::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 绑定到addressport

成功时返回服务器端口号,否则返回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() 调用将使用给定的 certificateprivateKeyprotocol

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