Qt-ohjelmointi
Http POST

Tässä harjoituksessa tutkitaan kuinka Qt-sovelluksella luodaan uusi rivi book-tauluun. Tässä harjoituksessa muokataan Http GET harjoituksessa luotua sovellusta.

  1. Lisää mainwindow.h tiedoston private osaan:
    QNetworkAccessManager *postManager;
    QNetworkReply *reply;
    QByteArray response_data;
    
  2. Lisää mainwindow.h tiedoston private slots osioon rivi:
    void addBookSlot (QNetworkReply *reply);
    
  3. Lisää sovellukseen Push Button ja buttonille clicked Slot ja kirjoita siihen koodi
    QJsonObject jsonObj;
    jsonObj.insert("name","Uusi kirja");
    jsonObj.insert("author","Matti Mainio");
    jsonObj.insert("isbn","123-456-789");
    
    QString site_url="http://localhost:3000/book";
    QNetworkRequest request(site_url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
    
    //WEBTOKEN ALKU
        QByteArray myToken="Bearer "+webToken;
        request.setRawHeader(QByteArray("Authorization"),(myToken));
    //WEBTOKEN LOPPU
    
    postManager = new QNetworkAccessManager(this);
    connect(postManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(addBookSlot(QNetworkReply*)));
    
    reply = postManager->post(request, QJsonDocument(jsonObj).toJson());   
    
  4. Lisää mainwindow.cpp tiedostoon funktio seuraavasti:
    void MainWindow::addBookSlot (QNetworkReply *reply)
    {
        response_data=reply->readAll();
        qDebug()<<response_data;
        reply->deleteLater();
        postManager->deleteLater();
    }
    

Harjoituksessa lisättiin kirja, jonka tiedot on kovakoodattuna. Voisit toki muokata sovellusta, niin että käyttöliittymässä olisi tekstikentät, joihin lisättävän kirjan tiedot voidaan kirjoittaa.



Toggle Menu