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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Количество байт в переданном сообщении QWebView  (Прочитано 3522 раз)
Oskal
Гость
« : Март 13, 2013, 16:58 »

Необходимо получить количество байт в переданном сообщении от клиента и в принятом сообщении от сервера.
Вот что у меня пока получается:

Код:
connect(view->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply *)), this, SLOT(RespFinished(QNetworkReply *)));

void WebBrowser::RespFinished(QNetworkReply *reply)
{

QList<QByteArray> result=reply->rawHeaderList(); //список полей заголовков, посланы сервером
QString strtemp;

//Вывод ответа http-заголовка в текстовое поле
foreach (QByteArray byteArray, result)
{
strtemp=QString(byteArray.constData())+": "+QString(reply->rawHeader(byteArray).constData());
textFrom->append(strtemp);
}

//Вывод запроса в текстовое поле
QUrl fgh=reply->request().url();
textTo->append (fgh.toEncoded());

//вывод количесвто загруженных байт
testtotal->setText(QString::number(view->page()->totalBytes()/*view->page()->bytesReceived()*/));

//сигнал не срабатывает?
//connect(reply, SIGNAL(downloadProgress(qint64, qint64)), view, SLOT(test(qint64, qint64)));
}

Посоветуйте, как это можно сделать.
Почему не срабатывает сигнал?
Записан
mutineer
Гость
« Ответ #1 : Март 13, 2013, 19:17 »

А какой прогресс загрузки должен быть, если запрос уже завершен?
Записан
Oskal
Гость
« Ответ #2 : Март 16, 2013, 20:45 »

Уже неделю мучаю. Как же сделать подсчет трафика переданных и отправленных байт?
Записан
carrygun
Гость
« Ответ #3 : Март 18, 2013, 06:59 »

Коннект к сигналу описан в неправильном месте.
Записан
Oskal
Гость
« Ответ #4 : Март 18, 2013, 09:09 »

Я уже это понял что не там, чтобы разобраться сделал без QWebView и запихал коннект в запрос. Но он показывает, сколько было загружено без учета заголовков в ответе. Наверно придется самостоятельно реализовывать протокол http и переопределить классы Qt для работы QWebView. В общем времени мало сделаю в С++ Builder.
Записан
Bepec
Гость
« Ответ #5 : Март 18, 2013, 09:33 »

Омг. Без учёта заголовков в ответе? Веселый ужасно. А то, что NAM незнает, что ты качаешь, значение имеет? Веселый Или ты скажи, что он с добрыми словами определяет что это страница и не качаёт её заголовки? Показает язык
Записан
antoshib
Гость
« Ответ #6 : Апрель 04, 2013, 10:22 »

У меня наподобие проблема  Злой Число байт странное какое-то..
Код:
    QByteArray  block;
    QDataStream out(&block, QIODevice::WriteOnly);
    out.setByteOrder(QDataStream::BigEndian);

    quint16 totalSize;
    quint16 typeOfRequest         = 1;
    quint16 zeroTerminatorSize    = 1;
    quint16 responceSize          = txtResponce.size() + zeroTerminatorSize;
    quint16 totalSizeFieldSize    = sizeof(totalSize);
    quint16 typeOfRequestFieldSize= sizeof(typeOfRequest);

    qDebug() << "sizes: " << totalSizeFieldSize << typeOfRequestFieldSize << responceSize;

    totalSize = totalSizeFieldSize     
              + typeOfRequestFieldSize
              + responceSize
              ;

    out << (quint16)totalSize;                  qDebug() << "Size block" << block.size();
    out << (quint16)typeOfRequest;              qDebug() << "Size block" << block.size();
    out << txtResponce.toStdString().c_str() ;  qDebug() << "Size block" << block.size();

на выходе вижу:
Цитировать
sizes: 2 2 5
Size block 2
Size block 4
Size block 13

Окуда берутся еще 4  Непонимающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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