Я использую QNetworkAccessManager для загрузки файлов из Интернета, он предоставляет простой API для этой задачи. Но я хочу добавить ограничение скорости загрузки для класса, чтобы все ответы http не превышали этот предел (я не вижу причин для ограничения запросов).
Я гуглил abit и нашел интересный пост здесь . Но то, что он делает, это подкласс QTcpSocket и дает контроль над пропускной способностью, используя отдельный класс, который управляет набором сокетов. Хотя это хорошо, я хочу продолжить использование класса QNetworkAcessManager.
То, как я это вижу, я мог бы:
- создать подкласс QNetworkAccessManager и каким-то образом интегрировать подкласс QTcpSocket (это может включать создание подклассов еще большего количества классов, QHttp *).
- используйте классы, предложенные в статье, и создайте мой собственный QNetworkAccessManager вокруг них.
- QNetworkAccessManager позволяет использовать прокси. Я мог бы написать фальшивый прокси-класс, который будет иметь логику регулирования пропускной способности. Но мне это кажется уродливым хаком.
Хотя первые 2 варианта возможны, мне было интересно, есть ли более простой способ сделать это? Если нет, какой бы вы предложили?