Я проверял несколько простых примеров использования QNetworkAccessManager, и я нашел, что это (при условии, что менеджер является QNetworkAccessManager:Qt: подключить сигнал после того, как запрос отправляется в QNetworkAccessManager
QNetworkRequest request;
request.setUrl(QUrl("http://www.someserver.com"));
QNetworkReply *reply = manager->get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(slotError(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(sslErrors(QList<QSslError>)),
this, SLOT(slotSslErrors(QList<QSslError>)));
Насколько я понимаю, call to manager-> get отправит запрос GET. Слоты для обработки ответа на этот запрос, однако, подключены только после звонок отправляется, что, похоже, не имеет смысла для меня. Здесь мой вопрос:
- не проблема для подключения слотов к сигналам после завершения запроса? Может ли случиться, что запрос сделан, и сигналы выдаются до того, как произойдет соединение, и, следовательно, что сигналы пропущены и никогда не обрабатываются соответствующими слотами?
Спасибо!
L.
UPDATE: Как отметил cyber_raj, этот вопрос уже ответил здесь: Qt signal slot connection - QNetworkAccessManager
На странице вы вывесили гласит: «6 запросов выполняются параллельно для одного хоста комбинации/порта в HTTP». Если я получу это правильно, это означает, что если обрабатывается менее 6 запросов для одной и той же комбинации хостов и портов, мой запрос будет выполнен сразу, поэтому я думаю, что вопрос остается. – mortadelo