Использование QNetworkAccessManager
в Qt 5. Вы можете использовать цикл событий, чтобы ждать, пока ответ не будет закончен, а затем прочитать имеющийся байт:
QString My_class::My_Method()
{
QNetworkAccessManager manager;
QNetworkReply *reply = manager.get(QNetworkRequest(QUrl(myURL)));
QEventLoop loop;
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), &loop, SLOT(quit()));
loop.exec();
QByteArray bts = reply->readAll();
QString str(bts);
delete reply;
return str;
}
Вы также можете сделать это в асинхронном режиме, подключив finished
сигнал QNetworkAccessManager
к слоту:
connect(&manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(onFinished(QNetworkReply*)));
и читать данные есть:
void onFinished(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError)
{
QByteArray bts = reply->readAll();
...
}
}
Да, вы должны использовать либо QNetworkAccessManager (предпочтительно) или использовать совместимость надстройку QtHttp, который обеспечивает класс QHttp, как это было в Qt4. – user2672165
Спасибо, но я не понимаю, «как это сделать». Я просто ученик. – Neokon
Это зависит от того, что вы хотите сделать. Вам нужно попытаться что-то закодировать, а затем отправить код, чтобы получить помощь здесь. – user2672165