PDA

View Full Version : Post JSON request in Qt 4.7



haxuanthao
2nd November 2016, 06:19
I'm working on a project required me to post JSON request to API server then receive data from server. However I cannot make it work. This is my code


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QUrl serviceUrl = QUrl("https://www.jusmine.jp/KA/KGBloginCheck");
QNetworkRequest request(serviceUrl);
QJsonObject json;
json.insert("userid","xxxx");
json.insert("userpass","xxxx");
request.setHeader(QNetworkRequest::ContentTypeHead er,"application/json");
request.setHeader(QNetworkRequest::ContentLengthHe ader,QByteArray::number(json.size()));
QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
connect(networkManager,SIGNAL(finished(QNetworkRep ly*)),this,SLOT(serviceRequestFinish(QNetworkReply *)));
networkManager->post(request,QJsonDocument(json).toJson());
}
void MainWindow::serviceRequestFinish(QNetworkReply *rep)
{
QString strReply = (QString)rep->readAll();
qDebug()<<"Test: "<<strReply;
}
After running the program I get nothing from server. (This code is built on Qt 4.7.0 so I have to use library qjson4-master). I don't know if any one can help me in this problem.
This is the result of testing server API:
12198
Thank you!

ChrisW67
2nd November 2016, 08:18
QJsonObject::size() does not return the size of the encoded QJsonDocument object. Leave that header out entirely: QNetworkAccessManager::post() will set it for you.