简易HTTP服务器
本示例展示如何设置一个HTTP服务器。
该示例展示如何使用QHttpServer类设置服务器。服务器使用listen()
函数绑定到入站端口,并使用route()
函数为几个不同的入站URL添加处理器。对于其中一个URL "/auth",使用基本HTTP认证。
const auto sslCertificateChain = QSslCertificate::fromPath(QStringLiteral(":/assets/certificate.crt")); if (sslCertificateChain.empty()) { qWarning() << QCoreApplication::translate("QHttpServerExample", "Couldn't retrieve SSL certificate from file."); return -1; } QFile privateKeyFile(QStringLiteral(":/assets/private.key")); if (!privateKeyFile.open(QIODevice::ReadOnly)) { qWarning() << QCoreApplication::translate("QHttpServerExample", "Couldn't open file for reading: %1") .arg(privateKeyFile.errorString()); return -1; } httpServer.sslSetup(sslCertificateChain.front(), QSslKey(&privateKeyFile, QSsl::Rsa)); privateKeyFile.close(); const auto sslPort = httpServer.listen(QHostAddress::Any); if (!sslPort) { qWarning() << QCoreApplication::translate("QHttpServerExample", "Server failed to listen on a port."); return -1; }
上述示例中使用QSslConfiguration
演示了如何为QHttpServer创建SSL配置以服务HTTPS流量。
httpServer.afterRequest([](QHttpServerResponse &&resp) { resp.setHeader("Server", "Qt HTTP Server"); return std::move(resp); });
上述示例展示了如何使用QHttpServer的afterRequest()
函数在route()
函数处理后更改QHttpServerResponse对象。它演示了如何将HTTP头部添加到响应中。
文件
图片
© 2024 Qt公司有限。提供的文档贡献的版权属于他们的各自的所有者。本提供的文档在自由软件基金会发布的GNU自由文档许可版本1.3的条款下许可。Qt及其相关标志是芬兰Qt公司及其在全球的子公司和附属公司的商标。所有其他商标均为其各自所有者的财产。