qt http 接受请求
时间: 2023-08-09 20:11:36 浏览: 52
您好!感谢您的提问。
在 Qt 中,可以使用 `QHttpServer` 类来实现 HTTP 服务器。以下是一个简单的示例代码,可以接受 GET 请求并返回一个简单的响应:
```cpp
#include <QCoreApplication>
#include <QHttpServer>
#include <QHttpRequest>
#include <QHttpResponse>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QHttpServer server;
server.listen(QHostAddress::Any, 8080, [](QHttpRequest *req, QHttpResponse *resp) {
if (req->method() == QHttpRequest::HTTP_GET) {
resp->setStatusCode(QHttpResponse::STATUS_OK);
resp->setHeader("Content-Type", "text/plain");
resp->write("Hello, World!");
resp->end();
} else {
resp->setStatusCode(QHttpResponse::STATUS_METHOD_NOT_ALLOWED);
resp->end();
}
});
if (!server.isListening()) {
qCritical() << "Failed to start server:" << server.errorString();
return 1;
}
qDebug() << "Server listening on port" << server.serverPort();
return app.exec();
}
```
在 `listen` 方法中,我们指定了服务器要监听的地址和端口号,并传入一个 lambda 表达式作为回调函数。当有新的请求到达时,回调函数会被调用。在回调函数中,我们可以根据请求的方法(GET、POST 等)以及路径、参数等信息来决定如何处理请求。在上述示例中,我们只处理了 GET 请求,并返回了一个简单的字符串响应。
希望能对您有所帮助!