下面是使用Qt6中的QNetworkAccessManager类发送HTTP请求的示例,使用了Lambda函数:
#include <QtCore/QCoreApplication>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QtCore/QUrl>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QNetworkAccessManager manager;
QUrl url("https://www.example.com");
QNetworkRequest request(url);
QObject::connect(&manager, &QNetworkAccessManager::finished, [&](QNetworkReply* reply) {
QString response = QString(reply->readAll());
qDebug() << "Response: " << response;
a.quit();
});
manager.get(request);
return a.exec();
}
与Qt5相比,Qt6的代码基本相同。唯一不同的是包含文件和一些命名空间。
在这个示例中,我们创建了一个QNetworkAccessManager实例,并使用QUrl和QNetworkRequest对象来设置要访问的URL。我们使用Lambda函数将QNetworkAccessManager的finished信号连接到一个匿名函数,以处理HTTP响应。在该函数中,我们读取响应并输出它,然后调用QCoreApplication的quit方法来退出应用程序。
最后,我们使用QNetworkAccessManager的get方法来发送GET请求。通常还可以使用QNetworkAccessManager的post方法来发送POST请求。