そのため、Qt で簡単なコードを実行して、特定の Web ページのコンテンツを返そうとしています。簡単な調査を行った後、プロセスを簡素化する独自のクラスを開発することができました。
WebFetch::WebFetch()
{
nam = new QNetworkAccessManager(this);
connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(finished(QNetworkReply*)));
}
QString WebFetch::get(QString url)
{
nam->get(QNetworkRequest(QUrl(url)));
}
void WebFetch::finished(QNetworkReply* reply)
{
QByteArray data = reply->readAll();
QString str(data);
}
ただし、上記のコードで見つけた大きな問題は、呼び出しが非同期であることです。「get」関数が取得された後に単に文字列を返すようにしたいのですが、完了した信号を待つ必要があるという理由でこれは不可能に思えます。 「完成した」スロットによって。上記の方法に代わるものはありますか、または「終了」によって取得されたコンテンツを返すために「取得」する方法はありますか? どんな助けでも大歓迎です。ありがとう!