- class QNetworkProxyFactory#
The
QNetworkProxyFactory
class provides fine-grained proxy selection. More…Synopsis#
Methods#
def
__init__()
Virtual methods#
def
queryProxy()
Static functions#
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
QNetworkProxyFactory
is an extension toQNetworkProxy
, allowing applications to have a more fine-grained control over which proxy servers are used, depending on the socket requesting the proxy. This allows an application to apply different settings, according to the protocol or destination hostname, for instance.QNetworkProxyFactory
can be set globally for an application, in which case it will override any global proxies set withsetApplicationProxy()
. If set globally, any sockets created with Qt will query the factory to determine the proxy to be used.A factory can also be set in certain frameworks that support multiple connections, such as
QNetworkAccessManager
. When set on such object, the factory will be queried for sockets created by that framework only.System Proxies#
You can configure a factory to use the system proxy’s settings. Call the
setUseSystemConfiguration()
function with true to enable this behavior, or false to disable it.Similarly, you can use a factory to make queries directly to the system proxy by calling its
systemProxyForQuery()
function.Warning
Depending on the configuration of the user’s system, the use of system proxy features on certain platforms may be subject to limitations. The
systemProxyForQuery()
documentation contains a list of these limitations for those platforms that are affected.- __init__()#
Creates a
QNetworkProxyFactory
object.Since
QNetworkProxyFactory
is an abstract class, you cannot create objects of typeQNetworkProxyFactory
directly.- static proxyForQuery(query)#
- Parameters:
query –
QNetworkProxyQuery
- Return type:
.list of QNetworkProxy
This function takes the query request,
query
, examines the details of the type of socket or request and returns a list ofQNetworkProxy
objects that indicate the proxy servers to be used, in order of preference.- abstract queryProxy([query=QNetworkProxyQuery()])#
- Parameters:
query –
QNetworkProxyQuery
- Return type:
.list of QNetworkProxy
This function takes the query request,
query
, examines the details of the type of socket or request and returns a list ofQNetworkProxy
objects that indicate the proxy servers to be used, in order of preference.When reimplementing this class, take care to return at least one element.
If you cannot determine a better proxy alternative, use
DefaultProxy
, which tells the code querying for a proxy to use a higher alternative. For example, if this factory is set to aQNetworkAccessManager
object, DefaultProxy will tell it to query the application-level proxy settings.If this factory is set as the application proxy factory, DefaultProxy and NoProxy will have the same meaning.
- static setApplicationProxyFactory(factory)#
- Parameters:
factory –
QNetworkProxyFactory
Sets the application-wide proxy factory to be
factory
. This function will take ownership of that object and will delete it when necessary.The application-wide proxy is used as a last-resort when all other proxy selection requests returned
DefaultProxy
. For example,QTcpSocket
objects can have a proxy set with QTcpSocket::setProxy, but if none is set, the proxy factory class set with this function will be queried.If you set a proxy factory with this function, any application level proxies set with
setApplicationProxy
will be overridden, andusesSystemConfiguration()
will returnfalse
.See also
- static setUseSystemConfiguration(enable)#
- Parameters:
enable – bool
Enables the use of the platform-specific proxy settings, and only those. See
systemProxyForQuery()
for more information.Calling this function with
enable
set totrue
resets any proxy orQNetworkProxyFactory
that is already set.Note
See the
systemProxyForQuery()
documentation for a list of limitations related to the use of system proxies.- static systemProxyForQuery([query=QNetworkProxyQuery()])#
- Parameters:
query –
QNetworkProxyQuery
- Return type:
.list of QNetworkProxy
This function takes the query request,
query
, examines the details of the type of socket or request and returns a list ofQNetworkProxy
objects that indicate the proxy servers to be used, in order of preference.This function can be used to determine the platform-specific proxy settings. This function will use the libraries provided by the operating system to determine the proxy for a given connection, if such libraries exist. If they don’t, this function will just return a
QNetworkProxy
of typeNoProxy
.On Windows, this function will use the WinHTTP DLL functions. Despite its name, Microsoft suggests using it for all applications that require network connections, not just HTTP. This will respect the proxy settings set on the registry with the proxycfg.exe tool. If those settings are not found, this function will attempt to obtain Internet Explorer’s settings and use them.
On macOS, this function will obtain the proxy settings using the CFNetwork framework from Apple. It will apply the FTP, HTTP and HTTPS proxy configurations for queries that contain the protocol tag “ftp”, “http” and “https”, respectively. If the SOCKS proxy is enabled in that configuration, this function will use the SOCKS server for all queries. If SOCKS isn’t enabled, it will use the HTTPS proxy for all TcpSocket and UrlRequest queries.
On systems configured with libproxy support, this function will rely on libproxy to obtain the proxy settings. Depending on libproxy configurations, this can in turn delegate to desktop settings, environment variables, etc.
On other systems, this function will pick up proxy settings from the “http_proxy” environment variable. This variable must be a URL using one of the following schemes: “http”, “socks5” or “socks5h”.
Limitations#
These are the limitations for the current version of this function. Future versions of Qt may lift some of the limitations listed here.
On Windows platforms, this function may take several seconds to execute depending on the configuration of the user’s system.
- static usesSystemConfiguration()#
- Return type:
bool
Returns whether the use of platform-specific proxy settings are enabled.