Networking Dasar dengan QNetworkAccessManager
Penjelasan
QNetworkAccessManager adalah class bawaan Qt untuk melakukan request HTTP — dipakai bareng QNetworkRequest (mendefinisikan URL dan header) dan QNetworkReply (hasil response, diakses lewat Signals & Slots karena request-nya berjalan ASYNCHRONOUS/non-blocking, tidak membekukan UI).
Contoh Konsep
QNetworkAccessManager *manager = new QNetworkAccessManager();
QObject::connect(manager, &QNetworkAccessManager::finished, [](QNetworkReply *reply) {
if (reply->error() == QNetworkReply::NoError) {
QByteArray data = reply->readAll();
qDebug() << "Respons:" << data;
}
reply->deleteLater(); // WAJIB, cegah memory leak
});
manager->get(QNetworkRequest(QUrl("https://api.contoh.com/produk")));
Praktikum
Buat QNetworkAccessManager, kirim GET request ke "https://api.contoh.com/artikel". Di slot finished, cek error(), kalau NoError cetak isi respons lewat qDebug(), jangan lupa reply->deleteLater().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Request QNetworkAccessManager bersifat ASYNCHRONOUS — kode SETELAH manager->get() langsung lanjut jalan TANPA menunggu response datang, hasilnya baru ditangani di slot yang terhubung ke signal finished() begitu response benar-benar tiba, mirip fetch().then() di JavaScript.