QT學習筆記之QT使用http協議


寫在前面

http協議在軟件設計的過程中占有很重要的地位,在一般的面試中也會經常被問到,下面簡單介紹http協議的使用:

使用方法

首先貼上代碼:

畢竟本人才剛開始學,下面的注視只是自己的一些拙見,日后學的深入會逐漸糾正。

 QNetworkAccessManager *manager = new QNetworkAccessManager();//實例化類 可以理解為整個http響應的控制者
        QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));//實例化類 用於確定響應的地址
        QByteArray responseData;//定義數據
        QEventLoop eventLoop;
        connect(manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));//信號槽
        eventLoop.exec();       //block until finish
        responseData = reply->readAll();//讀取返回數據
        return QString(responseData);//返回數據

有了這些基礎的知識就可以完成這部分的代碼了:

HTTP_Test01::HTTP_Test01(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    this->setWindowTitle("Http 下載器");

    manager = new QNetworkAccessManager(this);

    this->connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(showTextFromWeb(QNetworkReply*))); //QNetworkAccessManager請求完數據時開始響應
    this->connect(ui.showWeb, SIGNAL(clicked()), this, SLOT(showText()));  //用於動態的確認需要響應的網址
}

void HTTP_Test01::showText()
{
    QString url = ui.URL_EditText->text();
    reply = manager->get(QNetworkRequest(QUrl(url)));
}

void HTTP_Test01::showTextFromWeb(QNetworkReply* reply)
{
    QString text(reply->readAll());
    ui.webText->setText(text);
    reply->deleteLater();
}

效果如圖:
這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM