QT发送HTTP请求的最小Demo

最近在筹划一个开源项目,为了尽可能压榨服务器性能,所以部分代码使用C++编写。程序涉及到对外的HTTP请求,正好发现QT自带这方面的库,那就直接引用吧!

下面给出一个最小的Demo,不做额外介绍,每个类的具体用法请查阅官方文档。

注意

跑Demo前需要在.pro文件中加上如下代码,以链接网络库。

QT += network

Demo:

#include <QCoreApplication>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QNetworkAccessManager>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 构建及发送请求
    QNetworkAccessManager *manager = new QNetworkAccessManager();
    QString url = "https://www.ibadboy.net";
    QNetworkRequest request;
    request.setUrl(QUrl(url));
    QNetworkReply *pReply = manager->get(request);

    // 开启一个局部的事件循环,等待页面响应结束
    QEventLoop eventLoop;
    QObject::connect(manager, &QNetworkAccessManager::finished, &eventLoop, &QEventLoop::quit);
    eventLoop.exec();

    // 获取网页Body中的内容
    QByteArray bytes = pReply->readAll();
    qDebug() << bytes;

    return a.exec();
}