在pro 中添加QT += network
头引入
#include <QNetworkAccessManager> #include <QNetworkRequest> #include <QNetworkReply> #include <QVariant> #include <QByteArray> #include <QString>
mainwindow.h添加
public: void sendGetRequest();
void MainWindow::sendGetRequest() { QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager(); //设置url QString url = "http://pddtoolbox.penglingcheng.com/pow/api/index/getTask";//fae4b325e52c QNetworkRequest requestInfo; requestInfo.setUrl(QUrl(url)); //添加事件循环机制,返回后再运行后面的 QEventLoop eventLoop; QNetworkReply *reply = m_pHttpMgr->get(requestInfo); connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit())); eventLoop.exec(); //block until finish //错误处理 if (reply->error() == QNetworkReply::NoError) { qDebug() << "request protobufHttp NoError"; } else { qDebug()<<"request protobufHttp handle errors here"; QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); //statusCodeV是HTTP服务器的相应码,reply->error()是Qt定义的错误码,可以参考QT的文档 qDebug( "request protobufHttp found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error()); qDebug(qPrintable(reply->errorString())); } //请求返回的结果 QByteArray responseByte = reply->readAll(); qDebug() << responseByte; }