En esta página

QNetworkProxyFactory Class

La clase QNetworkProxyFactory proporciona una selección de proxy de grano fino. Más...

Cabecera: #include <QNetworkProxyFactory>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

Funciones Públicas

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

Miembros públicos estáticos

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

Descripción detallada

QNetworkProxyFactory es una extensión de QNetworkProxy, que permite a las aplicaciones tener un control más fino sobre qué servidores proxy se utilizan, dependiendo del socket que solicita el proxy. Esto permite a una aplicación aplicar diferentes configuraciones, según el protocolo o el nombre de host de destino, por ejemplo.

QNetworkProxyFactory puede ser configurado globalmente para una aplicación, en cuyo caso anulará cualquier proxy global configurado con QNetworkProxy::setApplicationProxy(). Si se establece globalmente, cualquier socket creado con Qt consultará a la fábrica para determinar el proxy a utilizar.

Una fábrica también puede ser establecida en ciertos frameworks que soportan múltiples conexiones, como QNetworkAccessManager. Cuando se establece en un objeto de este tipo, la fábrica será consultada sólo para los sockets creados por ese framework.

Proxies del sistema

Puedes configurar una fábrica para que utilice la configuración del proxy del sistema. Llame a la función setUseSystemConfiguration() con true para habilitar este comportamiento, o false para deshabilitarlo.

De forma similar, puedes usar una fábrica para hacer consultas directamente al proxy del sistema llamando a su función systemProxyForQuery().

Advertencia: Dependiendo de la configuración del sistema del usuario, el uso de las funciones del proxy del sistema en determinadas plataformas puede estar sujeto a limitaciones. La documentación de systemProxyForQuery() contiene una lista de estas limitaciones para aquellas plataformas afectadas.

Documentación de las funciones miembro

QNetworkProxyFactory::QNetworkProxyFactory()

Crea un objeto QNetworkProxyFactory.

Dado que QNetworkProxyFactory es una clase abstracta, no se pueden crear objetos de tipo QNetworkProxyFactory directamente.

[virtual noexcept] QNetworkProxyFactory::~QNetworkProxyFactory()

Destruye el objeto QNetworkProxyFactory.

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

Esta función toma la petición de consulta, query, examina los detalles del tipo de socket o petición y devuelve una lista de objetos QNetworkProxy que indican los servidores proxy a utilizar, por orden de preferencia.

[pure virtual] QList<QNetworkProxy> QNetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery())

Esta función toma la petición de consulta, query, examina los detalles del tipo de socket o petición y devuelve una lista de objetos QNetworkProxy que indican los servidores proxy a utilizar, por orden de preferencia.

Cuando reimplemente esta clase, tenga cuidado de devolver al menos un elemento.

Si no puede determinar una alternativa de proxy mejor, utilice QNetworkProxy::DefaultProxy, que indica al código que consulta por un proxy que utilice una alternativa superior. Por ejemplo, si esta fábrica se establece como un objeto QNetworkAccessManager, DefaultProxy le dirá que consulte la configuración del proxy a nivel de aplicación.

Si esta fábrica se establece como la fábrica de proxy de la aplicación, DefaultProxy y NoProxy tendrán el mismo significado.

[static] void QNetworkProxyFactory::setApplicationProxyFactory(QNetworkProxyFactory *factory)

Establece la fábrica de proxy para toda la aplicación que será factory. Esta función tomará posesión de ese objeto y lo borrará cuando sea necesario.

El proxy para toda la aplicación se utiliza como último recurso cuando todas las demás peticiones de selección de proxy devuelven QNetworkProxy::DefaultProxy. Por ejemplo, los objetos QTcpSocket pueden tener un proxy establecido con QTcpSocket::setProxy, pero si no se establece ninguno, se consultará la clase de fábrica de proxy establecida con esta función.

Si establece una fábrica de proxy con esta función, cualquier proxy a nivel de aplicación establecido con QNetworkProxy::setApplicationProxy será anulado, y usesSystemConfiguration() devolverá false.

Véase también QNetworkProxy::setApplicationProxy(), QAbstractSocket::proxy(), y QAbstractSocket::setProxy().

[static] void QNetworkProxyFactory::setUseSystemConfiguration(bool enable)

Habilita el uso de la configuración proxy específica de la plataforma, y sólo esa. Véase systemProxyForQuery() para más información.

Llamar a esta función con enable establecido en true reinicia cualquier proxy o QNetworkProxyFactory que ya esté establecido.

Nota: Consulte la documentación de systemProxyForQuery() para obtener una lista de limitaciones relacionadas con el uso de proxies del sistema.

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

Esta función toma la petición de consulta, query, examina los detalles del tipo de socket o petición y devuelve una lista de objetos QNetworkProxy que indican los servidores proxy a utilizar, por orden de preferencia.

Esta función puede utilizarse para determinar la configuración proxy específica de la plataforma. Esta función utilizará las librerías proporcionadas por el sistema operativo para determinar el proxy para una conexión dada, si tales librerías existen. Si no existen, esta función simplemente devolverá un QNetworkProxy de tipo QNetworkProxy::NoProxy.

En Windows, esta función utilizará las funciones de la DLL WinHTTP. A pesar de su nombre, Microsoft sugiere utilizarla para todas las aplicaciones que requieran conexiones de red, no sólo HTTP. Esto respetará la configuración proxy establecida en el registro con la herramienta proxycfg.exe. Si no se encuentra dicha configuración, esta función intentará obtener la configuración de Internet Explorer y utilizarla.

En macOS, esta función obtendrá la configuración del proxy utilizando el marco CFNetwork de Apple. Aplicará las configuraciones de proxy FTP, HTTP y HTTPS para las consultas que contengan la etiqueta de protocolo "ftp", "http" y "https", respectivamente. Si el proxy SOCKS está habilitado en esa configuración, esta función utilizará el servidor SOCKS para todas las consultas. Si SOCKS no está habilitado, utilizará el proxy HTTPS para todas las consultas TcpSocket y UrlRequest.

En sistemas configurados con soporte para libproxy, esta función dependerá de libproxy para obtener la configuración del proxy. Dependiendo de la configuración de libproxy, esto puede a su vez delegar en la configuración del escritorio, variables de entorno, etc.

En otros sistemas, esta función obtendrá la configuración del proxy de la variable de entorno "http_proxy". Esta variable debe ser una URL que utilice uno de los siguientes esquemas: "http", "socks5" o "socks5h".

Limitaciones

Estas son las limitaciones para la versión actual de esta función. Futuras versiones de Qt pueden eliminar algunas de las limitaciones aquí listadas.

  • En plataformas Windows, esta función puede tardar varios segundos en ejecutarse dependiendo de la configuración del sistema del usuario.

[static] bool QNetworkProxyFactory::usesSystemConfiguration()

Devuelve si está habilitado el uso de la configuración de proxy específica de la plataforma.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.