Qt post http請求使用

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //網絡載體
    networkAccessManager = new QNetworkAccessManager(this);

    //網絡載體的響應接收信號,與響應接收槽綁定
    connect(networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(SltLoginReplay(QNetworkReply*)));
}

void MainWindow::SltLoginReplay(QNetworkReply *reply)
{
    int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();

    qDebug() << "statusCode:" << statusCode;

    if(reply->error() == QNetworkReply::NoError)
    {
            ui->textBrowser->setText(QString(reply->readAll()));
    }
    else
    {
            qDebug() << "=========";
    }

    reply->deleteLater();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    ui->textBrowser->clear();

    QString strUserInfo = QString("name=&password=");

    QByteArray content = strUserInfo.toUtf8();
    int contentLength = content.length();

    QNetworkRequest netReq;
    netReq.setUrl(QUrl("server ip address"));
    netReq.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    netReq.setHeader(QNetworkRequest::ContentLengthHeader, contentLength);

    // 發送參數// 將用戶名和密碼發送至web服務器進行驗證
    networkAccessManager->post(netReq, content);

}

void MainWindow::on_pushButton_2_clicked()
{
    ui->textBrowser->clear();
    QNetworkRequest request;
    request.setUrl(QUrl("http://dict.baidu.com/s?wd=name"));

    networkAccessManager->get(request);
}
相關文章
相關標籤/搜索