Russian Qt Forum
Ноябрь 23, 2024, 05:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Замена QHttp на QNetworkAccessManager  (Прочитано 2745 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Февраль 18, 2015, 09:12 »

Собственно портировал приложение на Qt5. Заменил QHttp на сабж, приложение может делать сразу около 30 запросов, потом может их все прервать и сделать другие 30 запросов.
Как реализовать?

Так корректно?
Код:
class DataSource{
QMap<QNetworkReply*, QString> loadingData; }

void DataSource::loadData(const QString& host, const QString& url, const QString &data)
{
    QNetworkRequest netWorkRequest(QUrl("http://" + host + url));
    netWorkRequest.setRawHeader("User-Agent" , "Opera");
    QNetworkReply* reply = netWorkLoader->get(netWorkRequest);
    loadingData[reply] = data;
}

void DataSource::requestFinished(QNetworkReply* reply)
{
     if(reply->error()) {...}
     else
        if (loadingData.contains(reply)){
            QString data = loadingData[reply];
            loadingData.remove(reply);
            myReadData(data, reply->readAll()); }
    reply->deleteLater();
}

void DataSource::abortLoading()
{
    foreach (QNetworkReply* reply, loadingMap.keys())
        reply->abort();
    loadingData.clear();
}

p.s. Почему без user-agent многие сайты не дают информацию?
« Последнее редактирование: Февраль 18, 2015, 09:16 от deMax » Записан
Bepec
Гость
« Ответ #1 : Февраль 18, 2015, 10:06 »

update:
1) Количество одновременных запросов указывается вроде в настройках где то (там что то не более 20 по умолчанию).
2) если у вас всё работает и корректно загружается, то всё ок. Ничего крамольного на 1 взгляд не вижу.
3) потому что отсутствие user-agent показывает сайту, что либо запрашивает робот, либо аноним. И тех и тех не особо любят Улыбающийся
« Последнее редактирование: Февраль 18, 2015, 12:16 от Bepec » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.