Spec-Zone.ru › Qt 5.15

Класс QNetworkProxyFactory

Класс QNetworkProxyFactory предоставляет детальный выбор прокси-серверов. Подробнее...

Заголовок: #include <QNetworkProxyFactory>
qmake: QT += network
С момента: Qt 4.5

Этот класс был представлен в Qt 4.5.

  • Список всех членов, включая наследуемые

Открытые функции

QNetworkProxyFactory()
virtual ~QNetworkProxyFactory()
virtual QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()) = 0

Статические открытые члены

QList<QNetworkProxy> proxyForQuery(const QNetworkProxyQuery &query)
void setApplicationProxyFactory(QNetworkProxyFactory *factory)
void setUseSystemConfiguration(bool enable)
QList<QNetworkProxy> systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery())
bool usesSystemConfiguration()

Подробное описание

QNetworkProxyFactory — это расширение класса QNetworkProxy, позволяющее приложениям более детально контролировать используемые прокси-серверы в зависимости от сокета, запрашивающего прокси. Это позволяет приложению применять разные настройки в зависимости от протокола или имени хоста назначения, например.

QNetworkProxyFactory можно задать глобально для приложения, в этом случае он переопределит любые глобальные прокси, заданные с помощью QNetworkProxy::setApplicationProxy(). Если он задан глобально, все сокеты, созданные с Qt, будут обращаться к фабрике для определения используемого прокси.

Фабрику также можно задать в некоторых фреймворках, поддерживающих несколько соединений, таких как QNetworkAccessManager. При установке на такой объект фабрика будет запрошена только для сокетов, созданных этим фреймворком.

Системные прокси

Вы можете настроить фабрику на использование системных настроек прокси. Вызовите функцию setUseSystemConfiguration() со значением true, чтобы включить это поведение, или false, чтобы отключить его.

Аналогично, вы можете использовать фабрику для прямого запроса к системному прокси, вызвав функцию systemProxyForQuery().

Предупреждение: В зависимости от конфигурации системы пользователя использование функций системного прокси на определённых платформах может быть ограничено. В документации к systemProxyForQuery() представлен список этих ограничений для затронутых платформ.

Документация по функциям-членам

QNetworkProxyFactory::QNetworkProxyFactory()

Создаёт объект QNetworkProxyFactory.

Поскольку QNetworkProxyFactory — абстрактный класс, вы не можете создавать объекты типа QNetworkProxyFactory напрямую.

QNetworkProxyFactory::~QNetworkProxyFactory()

Удаляет объект QNetworkProxyFactory.

QList<QNetworkProxy> QNetworkProxyFactory::proxyForQuery(const QNetworkProxyQuery &query)

Эта функция принимает запрос query, анализирует детали типа сокета или запроса и возвращает список объектов QNetworkProxy, указывающих на прокси-серверы, которые нужно использовать в порядке приоритета.

QList<QNetworkProxy> QNetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery())

Эта функция принимает запрос query, анализирует детали типа сокета или запроса и возвращает список объектов QNetworkProxy, указывающих на прокси-серверы, которые нужно использовать в порядке приоритета.

При переопределении этого класса следите за тем, чтобы вернуть хотя бы один элемент.

Если вы не можете определить лучшую альтернативу прокси, используйте QNetworkProxy::DefaultProxy, который сообщает коду, запрашивающему прокси, использовать более высокую альтернативу. Например, если эта фабрика установлена для объекта QNetworkAccessManager, DefaultProxy сообщит ему запрос к настройкам прокси на уровне приложения.

Если эта фабрика установлена как фабрика прокси приложения, DefaultProxy и NoProxy будут иметь одинаковое значение.

void QNetworkProxyFactory::setApplicationProxyFactory(QNetworkProxyFactory *factory)

Устанавливает фабрику прокси для всего приложения в factory. Эта функция получит владение этим объектом и удалит его при необходимости.

Прокси на уровне приложения используется в качестве последней меры, когда все другие запросы выбора прокси вернули QNetworkProxy::DefaultProxy. Например, объекты QTcpSocket могут иметь прокси, установленный с помощью QTcpSocket::setProxy, но если он не установлен, будет запрошена фабрика прокси класса, установленная с помощью этой функции.

Если вы установите фабрику прокси с помощью этой функции, все прокси на уровне приложения, установленные с помощью QNetworkProxy::setApplicationProxy, будут переопределены, и usesSystemConfiguration() вернёт false.

См. также QNetworkProxy::setApplicationProxy(), QAbstractSocket::proxy() и QAbstractSocket::setProxy().

void QNetworkProxyFactory::setUseSystemConfiguration(bool enable)

Включает использование платформенных настроек прокси и только их. См. systemProxyForQuery() для получения дополнительной информации.

Вызов этой функции со значением enable, установленным в true, сбросит любой установленный прокси или QNetworkProxyFactory.

Примечание: См. документацию к systemProxyForQuery() для списка ограничений, связанных с использованием системных прокси.

Эта функция была представлена в Qt 4.6.

QList<QNetworkProxy> QNetworkProxyFactory::systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery())

Эта функция принимает запрос query, анализирует детали типа сокета или запроса и возвращает список объектов QNetworkProxy, указывающих на прокси-серверы, которые нужно использовать в порядке приоритета.

Эта функция может использоваться для определения платформенно-специфичных настроек прокси. Эта функция будет использовать библиотеки, предоставленные операционной системой, чтобы определить прокси для данного соединения, если такие библиотеки существуют. Если их нет, эта функция просто вернёт QNetworkProxy типа QNetworkProxy::NoProxy.

В Windows эта функция будет использовать функции WinHTTP DLL. Несмотря на своё имя, Microsoft рекомендует использовать её для всех приложений, требующих сетевых соединений, а не только HTTP. Это позволит учесть настройки прокси, установленные в реестре с помощью инструмента proxycfg.exe. Если такие настройки не найдены, эта функция попытается получить настройки Internet Explorer и использовать их.

В macOS эта функция получит настройки прокси с помощью фреймворка SystemConfiguration от Apple. Она применит настройки прокси для FTP, HTTP и HTTPS для запросов, содержащих теги протоколов «ftp», «http» и «https» соответственно. Если прокси SOCKS включён в этих настройках, эта функция будет использовать сервер SOCKS для всех запросов. Если SOCKS не включён, она будет использовать прокси HTTPS для всех запросов TcpSocket и UrlRequest.

В других системах эта функция получит настройки прокси из переменной среды «http_proxy». Эта переменная должна быть URL-адресом, использующим один из следующих схем: «http», «socks5» или «socks5h».

Ограничения

Это ограничения для текущей версии этой функции. Будущие версии Qt могут снять некоторые из перечисленных ограничений.

  • В macOS эта функция проигнорирует настройки автоматической конфигурации прокси, так как не может выполнить связанный ECMAScript-код.
  • В Windows эта функция может занимать несколько секунд для выполнения в зависимости от конфигурации системы пользователя.

bool QNetworkProxyFactory::usesSystemConfiguration()

Возвращает, включены ли настройки прокси, специфичные для платформы.

Эта функция была добавлена в Qt 5.8.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qnetworkproxyfactory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API