Spec-Zone.ru › Qt 5.11

Класс QNetworkProxyFactory

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

Заголовок: #include <QNetworkProxyFactory>
qmake: QT += network
С момента: 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 предоставляет детальную настройку прокси-серверов.

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 эта функция может выполняться несколько секунд в зависимости от конфигурации системы пользователя.

[static] bool QNetworkProxyFactory::usesSystemConfiguration()

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

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

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

Spec-Zone.ru

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