Название: Как использовать единственный QNetworkAccessManager для разнотипных запросов? Отправлено: schmidt от Декабрь 04, 2015, 17:02 Добрый день,
Можно ли использовать один QNetworkAccessManager для выполнения любых типов HTTP запросов - загрузка изображений, HTML, XML, и.т.д. - и как в этом случае отличать в слоте один ответ от другого? Из соображений по данному вопросу нашел два подхода: 1. Использовать QNetworkRequest::setAttribute(QNetworkRequest::Attribute). Объект запроса доступен в слоте из QNetworkReply::request(). 2. Привязываться к сигналу finished() объекта QNetworkReply, указатель на который возвращает QNetworkAccessManager::get(). Этот способ нашел в http://www.qtcentre.org/threads/54860-Multiple-requests-with-QNetworkAccessManager (http://www.qtcentre.org/threads/54860-Multiple-requests-with-QNetworkAccessManager). Пробовал устанавливать атрибуты запроса, но setAttribute не принимает значения из enum, определенного в другом классе, сообщая о том, что не может привести аргумент к типу QNetworkRequest::Attribute. Цитировать qnetworkrequest.h:131: note: no known conversion for argument 1 from 'Agent::Attribute' to 'QNetworkRequest::Attribute' В документации пишут Цитировать QNetworkRequest::User 1000 Special type. Additional information can be passed in QVariants with types ranging from User to UserMax. The default implementation of Network Access will ignore any request attributes in this range and it will not produce any attributes in this range in replies. The range is reserved for extensions of QNetworkAccessManager. Означает ли это, что мне придется наследоваться от QNetworkAccessManager или QNetworkRequest, чтобы устанавливать свои атрибуты? Название: Re: Как использовать единственный QNetworkAccessManager для разнотипных запросов? Отправлено: Bepec от Декабрь 04, 2015, 19:04 приведите к инту. Ну или к типу енума QNAM'a. Для него это два различных типа.
Название: Re: Как использовать единственный QNetworkAccessManager для разнотипных запросов? Отправлено: schmidt от Декабрь 07, 2015, 21:24 Спасибо :) Выходит, если enum объявлен строго типизированным - помечен тегом - с ним можно договориться только через static_cast :) Интересно, до сих пор не замечал особой разницы между именованным enum и безымянным, буду знать )
|