Tässä esimerkissä esitetään kuinka Qt-sovelluksella muokataan book-taulun riviä.
void onUpdateBookClicked();
void MainWindow::onUpdateBookClicked()
{
QJsonObject jsonObj;
jsonObj.insert("name","Muokattu kirja");
jsonObj.insert("author","Jussi Juonio");
jsonObj.insert("isbn","xxx-yyy-zzzz");
QString site_url="http://localhost:3000/book/19";
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);
QNetworkReply *reply = manager->put(request, jsonDoc.toJson());
connect(reply, &QNetworkReply::finished, this, [reply, this]() {
// Tarkistetaan verkkovirheet
if (reply->error() != QNetworkReply::NoError) {
qWarning() << "Network error:" << reply->errorString();
reply->deleteLater();
return;
}
QByteArray response_data = reply->readAll();
qDebug() << response_data;
reply->deleteLater();
});
}
Huomaa rakenne: Button-slotti (onUpdateBookClicked) on erillinen metodi, mutta HTTP-vastauksen käsittely tehdään lambda-funktiolla.