Добрый день,
Можно ли использовать один 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.
Пробовал устанавливать атрибуты запроса, но 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, чтобы устанавливать свои атрибуты?