Russian Qt Forum

Qt => Работа с сетью => Тема начата: DenKor29 от Ноябрь 18, 2014, 08:59



Название: Перехват запросов
Отправлено: DenKor29 от Ноябрь 18, 2014, 08:59
Есть код для перехвата сообщений сервера. Я могу безбоязнено читать реквесты и ответы в своем слоте ?
И WebView будет работать со своей копией данных.

Или мне нельзя читать данные QNetworkReply в logproxy ?
  
Код:
 QNetworkAccessManager* manager = view->page()->networkAccessManager();
 connect(manager, SIGNAL(finished(QNetworkReply*)), SLOT(logproxy(QNetworkReply*)));


void MainWindow::logproxy(QNetworkReply * reply)
{
 QString mess = reply->url().toString();

 message(mess);
 showMessage(mess,levelDebug);

}


Название: Re: Перехват запросов
Отправлено: Fregloin от Ноябрь 18, 2014, 10:41
по идее можете читать, но в любом случае результат нужно будет удалять вручную, а кто его удаляет вы знаете? Просто может так случиться что до вызова вашего слота или в процессе его обработки результат запроса будет удален кем то из другого потока.


Название: Re: Перехват запросов
Отправлено: DenKor29 от Ноябрь 18, 2014, 13:11
Код:
    view = new QWebView(this);
    view->load(url);

Поток один. Нужно читать двумя слотами данные ответа. Как я понимаю у view есть свой обработчкик сигнала finished.

Соответсвенно если я вызову метод replay->readAll()  и получу данные в своем обработчике, то стандартный обработчик view сможет прочитать эти же данные или нет ?


Название: Re: Перехват запросов
Отправлено: Old от Ноябрь 18, 2014, 15:19
А вы не делайте read, сделайте peek.