まず、http: //doc.qt.nokia.com/latest/classes.htmlにあるQtドキュメントリファレンスから関連するドキュメントを読むことをお勧めします。
コードサンプルを見ると、とQNetworkRequest
と一緒に、がすでにあるようです。必要なのは、スロットを信号に接続することです。この信号は、保留中のネットワーク応答が終了するたびに発行されます。QNetworkReply
QNetworkAccessManager
finished(QNetworkReply *)
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://api.stackoverflow.com")));
これで、スロットで、要求に応じて送信されたデータを読み取ることができます。何かのようなもの:
void MyClass::MySlot(QNetworkReply *data) {
QFile file("dataFromRequest");
if (!file.open(QIODevice::WriteOnly))
return;
file.write(data->readAll());
file.close();
}
編集:
シグナルを同期的に待機するには、QEventLoopを使用します。ここに例があります
http://wiki.forum.nokia.com/index.php/How_to_wait_synchronously_for_a_Signal_in_Qt