Qt-ohjelmointi
Http POST

Tässä harjoituksessa tutkitaan kuinka Qt-sovelluksella luodaan uusi rivi book-tauluun.

  1. Lisää mainwindow.h tiedoston private slots osioon rivi:
    void addBookSlot ();
    
  2. 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
    
    //luo manager konstruktorissa, jos tarvitset sitä muissa funktioissa
    manager = new QNetworkAccessManager(this);
    
    QJsonDocument jsonDoc(jsonObj);
    reply = manager->post(request, jsonDoc.toJson());
    connect(reply, &QNetworkReply::finished, this, &MainWindow::addBookSlot);
    

    HTTP POST Request -rakenne (webtoken-autentikoinnilla)

    HTTP Request Line: POST http://localhost:3000/book HTTP/1.1 Headers: Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6... ← webToken Body (JSON): { "name": "Uusi kirja" , "author": "Matti Mainio" , "isbn": "123-456-789" } 💡 POST-pyynnössä data lähetetään request bodyssä JSON-muodossa
  3. Lisää mainwindow.cpp tiedostoon funktio seuraavasti:
    void MainWindow::addBookSlot ()
    {
        response_data=reply->readAll();
        qDebug()<<response_data;
        reply->deleteLater();
    }
    



Toggle Menu