crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Загрузка файлов по HTTP. Перестает вызываться слот.
mva
  опции профиля:
сообщение 31.3.2014, 15:28
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 104
Регистрация: 15.3.2009
Из: Киров
Пользователь №: 615

Спасибо сказали: 3 раз(а)




Репутация:   0  


Доброго времени суток!

Гружу большой список файлов по HTTP. После загрузки определенного их количества (скажем 100), перестает срабатывать слот обработки загруженных данных (replyFinished).

                                    ...
                                    if (m_networkAccessManager == 0)
                                    {  // Сетевой менеджер загружается один раз, если возникла необходимость загрузки файла
                                        QNetworkConfigurationManager manager(this);
                                        m_networkAccessManager = new QNetworkAccessManager(this);
                                        m_networkAccessManager->setConfiguration(manager.defaultConfiguration());
                                        connect(m_networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
                                    }
                                    if (m_networkAccessManager != 0)
                                    {  // Если сетевой менеджер загружен
                                        if (m_networkAccessManager->networkAccessible() == QNetworkAccessManager::Accessible)
                                        {  // И сеть доступна
                                            ...
                                            QNetworkRequest m_request(url);
                                            QNetworkReply* reply = m_networkAccessManager->get(m_request);   // Запустим скачивание файла
                                            if (reply->error() == QNetworkReply::NoError)
                                                app->showMessageOnStatusBar(tr("Файл загружен", 3000);
                                            else
                                                app->showMessageOnStatusBar(reply->errorString(), 3000);          // Файл не загружен, выведем сообщение об ошибке
                                        }
                                        else
                                            app->showMessageOnStatusBar(tr("Нет доступа к сети для загрузки файлов."), 3000);
                                    }
                                    ...


void Essence::replyFinished(QNetworkReply* reply)
{
    ...
    if (reply->error() == QNetworkReply::NoError)
    {
        // Данные получены, запишем их в файл
            ...
            QByteArray array = reply->readAll();
            ...
        }
    }
    ...
    reply->close();
    reply->deleteLater();
}


Что я делаю не правильно?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.4.2014, 14:21
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Кода мало для того, чтобы понять в чем дело.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 2:47