QT Http的简单使用

.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QNetworkAccessManager>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void sendData();

private slots:
    void replyFinished(QNetworkReply*);

private:
    Ui::MainWindow *ui;
    QNetworkAccessManager *manager;
    QNetworkReply *reply;
    QNetworkRequest request;
};

#endif // MAINWINDOW_H

.cpp文件

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

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //新建一管理器
    manager = new QNetworkAccessManager();
    sendData();
}

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

void MainWindow::sendData()
{
    //伺服参数
    request.setUrl(QUrl("网址"));
    QByteArray postData="要发送的数据";

    int postlenth = postData.length();

    //发送post请求    
    request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
    request.setHeader(QNetworkRequest::ContentLengthHeader,postlenth);
    reply = manager->post(request,postData);

    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
}

void MainWindow::replyFinished(QNetworkReply* reply)
{
    QByteArray data = reply->readAll();
    ui->textEdit->setText(data);
}
posted on 2020-01-06 10:10  缘随风烬  阅读(2557)  评论(0编辑  收藏  举报