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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QNetworkAccessManager не работает в release [РЕШЕНО]  (Прочитано 7439 раз)
Денис
Гость
« : Октябрь 13, 2013, 11:20 »

Обрашается к сайту в Debbug и все ок, считывает данные я их парсю, но выяснилось что почему-то нету ответа от сайта в Release версии ... то есть библиотека не совсем корректно отрабатывает .... В чем может быть причина ?
« Последнее редактирование: Декабрь 03, 2013, 17:21 от Денис » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Октябрь 13, 2013, 11:41 »

подпишись на сигнал QNetworkReply::error(QNetworkReply::NetworkError) и посмотри что за ошибка вылазит. крайне маловероятно, что дело в библиотеке.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Денис
Гость
« Ответ #2 : Октябрь 13, 2013, 15:12 »

Уже сделал и вывел в QLineEdit чтоб просмотреть ошибка номер 0 - то есть нету ошибок ... В чем же тогда может быть дело ?
Как может в дебаге работать а в релизе нет ... ? Цифровая подпись ?
Записан
Денис
Гость
« Ответ #3 : Октябрь 13, 2013, 15:16 »

Вот пример кода:
Код:
#include "network.h"

Network::Network(QString urlString1, QString urlString2, QString urlString3){
    url1 = QUrl(urlString1);
    url2 = QUrl(urlString2);
    url3 = QUrl(urlString3);
    manager = new QNetworkAccessManager(this);

    databcoin = new QString();
    bit = new FeatBit();
    finished = false;

    bit->historylength = 0;
}

void Network::getReply1() {
    QEventLoop loop;
    finished = false;
    reply = manager->get(QNetworkRequest(url1));
    connect(reply, SIGNAL(finished()), this, SLOT(downloadFinished1()));
    connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
    loop.exec();
}

void Network::downloadFinished1(){
    webContent1 = reply->readAll();
    finished = true;
}

void Network::downloadFinished2(){
    webContent2 = reply->readAll();
    finished = true;
}

void Network::downloadFinished3(){
    webContent3 = reply->readAll();
    finished = true;
}
 
Записан
Денис
Гость
« Ответ #4 : Октябрь 13, 2013, 15:19 »

Код:
ui->lineEdit_4->setText(QString::number(url->reply->error()));
Выводит 0 в лайнэдит ...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Октябрь 13, 2013, 15:48 »

подпишись на сигнал QNetworkReply::error(QNetworkReply::NetworkError) и посмотри что за ошибка вылазит.
уточню: читать ошибку надо в слоте, подключенному к указанному сигналу.

а зачем ты запихнул ивентлуп если читаешь данные в слоте, а не прямо в месте запуска запроса, я вообще понять не могу.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Денис
Гость
« Ответ #6 : Октябрь 13, 2013, 19:47 »

Хорошо как тогда его правильно использовать Непонимающий?
Вот так :
Код:
connect(reply, SIGNAL(QNetworkReply::error(QNetworkReply::NetworkError)), this, SLOT(errorFinded()));
Записан
mutineer
Гость
« Ответ #7 : Октябрь 13, 2013, 19:48 »

ты доку по сигналам-слотам читал?
Я там не видел записи SIGNAL(QNetworkReply::error(QNetworkReply::NetworkError))
Записан
Денис
Гость
« Ответ #8 : Октябрь 13, 2013, 20:06 »

Код:
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorFinded()));

Сорри вот таквот Непонимающий?
Записан
mutineer
Гость
« Ответ #9 : Октябрь 13, 2013, 20:23 »

Код:
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorFinded(QNetworkReply::NetworkError)));
« Последнее редактирование: Октябрь 13, 2013, 20:28 от mutineer » Записан
Денис
Гость
« Ответ #10 : Октябрь 13, 2013, 20:32 »

Уже и так выводил:
Код:
connect(reply, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(errorFinded()));

Думал проблемы с SSL-сертификатом )))
Записан
Денис
Гость
« Ответ #11 : Октябрь 13, 2013, 20:44 »

так тоже делал все равно возвращает нулевую ошибку тип ее нету но массив пустой с данными ) Блин замучалсся с этим классом ...
Записан
Денис
Гость
« Ответ #12 : Октябрь 13, 2013, 20:58 »

а как кеш отключить ?
Записан
mutineer
Гость
« Ответ #13 : Октябрь 13, 2013, 20:58 »

Чей кэш?
Записан
Денис
Гость
« Ответ #14 : Октябрь 13, 2013, 21:09 »

кэш библиотеки QNetAcsessNetwork может программа пытается с кэша грузить Непонимающий
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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