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);
}
相关文章
相关标签/搜索