.pro中添加组件
QT += network
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <string.h>
#include <QDebug>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QBuffer>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
QString url = "http://127.0.0.1:8081/api/PC_Login";
QNetworkRequest requestInfo;
requestInfo.setUrl(QUrl(url));
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
QImage image("C://Users//\Administrator//Pictures//test.jpg");
QByteArray ba;
QBuffer buf(&ba);
image.save(&buf, "jpg");
QString qstr = "{\"name\":\"aaa\",\"password\":\"123456\", \"img\":\"" + ba.toBase64() + "\"}";
buf.close();
QByteArray qByteHttpData = qstr.toUtf8();
QNetworkReply *reply= m_pHttpMgr->post(requestInfo, qByteHttpData);
QEventLoop eventLoop;
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);
qDebug( "request protobufHttp found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error());
qDebug(qPrintable(reply->errorString()));
}
QByteArray responseByte = reply->readAll();
qDebug() << responseByte;
}
MainWindow::~MainWindow()
{
delete ui;
}