- class QNetworkProxyQuery#
The
QNetworkProxyQuery
class is used to query the proxy settings for a socket. More…Synopsis#
Methods#
def
__init__()
def
localPort()
def
__ne__()
def
__eq__()
def
peerHostName()
def
peerPort()
def
protocolTag()
def
queryType()
def
setLocalPort()
def
setPeerPort()
def
setProtocolTag()
def
setQueryType()
def
setUrl()
def
swap()
def
url()
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#
QNetworkProxyQuery
holds the details of a socket being created or request being made. It is used byQNetworkProxy
andQNetworkProxyFactory
to allow applications to have a more fine-grained control over which proxy servers are used, depending on the details of the query. This allows an application to apply different settings, according to the protocol or destination hostname, for instance.QNetworkProxyQuery
supports the following criteria for selecting the proxy:the type of query
the local port number to use
the destination host name
the destination port number
the protocol name, such as “http” or “ftp”
the URL being requested
The destination host name is the host in the connection in the case of outgoing connection sockets. It is the
hostName
parameter passed toconnectToHost()
or the host component of a URL requested withQNetworkRequest
.The destination port number is the requested port to connect to in the case of outgoing sockets, while the local port number is the port the socket wishes to use locally before attempting the external connection. In most cases, the local port number is used by listening sockets only (
QTcpSocket
) or by datagram sockets (QUdpSocket
).The protocol name is an arbitrary string that indicates the type of connection being attempted. For example, it can match the scheme of a URL, like “http”, “https” and “ftp”. In most cases, the proxy selection will not change depending on the protocol, but this information is provided in case a better choice can be made, like choosing an caching HTTP proxy for HTTP-based connections, but a more powerful SOCKSv5 proxy for all others.
Some of the criteria may not make sense in all of the types of query. The following table lists the criteria that are most commonly used, according to the type of query.
Query type
Description
Normal sockets requesting a connection to a remote server, like
QTcpSocket
. The peer hostname and peer port match the values passed toconnectToHost()
. The local port is usually -1, indicating the socket has no preference in which port should be used. The URL component is not used.Datagram-based sockets, which can both send and receive. The local port, remote host or remote port fields can all be used or be left unused, depending on the characteristics of the socket. The URL component is not used.
Message-oriented sockets requesting a connection to a remote server. The peer hostname and peer port match the values passed to
connectToHost()
. The local port is usually -1, indicating the socket has no preference in which port should be used. The URL component is not used.Passive server sockets that listen on a port and await incoming connections from the network. Normally, only the local port is used, but the remote address could be used in specific circumstances, for example to indicate which remote host a connection is expected from. The URL component is not used.
A more high-level request, such as those coming from
QNetworkAccessManager
. These requests will inevitably use an outgoing TCP socket, but the this query type is provided to indicate that more detailed information is present in the URL component. For ease of implementation, the URL’s host and port are set as the destination address.Passive server sockets that listen on an SCTP port and await incoming connections from the network. Normally, only the local port is used, but the remote address could be used in specific circumstances, for example to indicate which remote host a connection is expected from. The URL component is not used.
It should be noted that any of the criteria may be missing or unknown (an empty QString for the hostname or protocol name, -1 for the port numbers). If that happens, the functions executing the query should make their best guess or apply some implementation-defined default values.
- class QueryType#
Describes the type of one
QNetworkProxyQuery
query.Constant
Description
QNetworkProxyQuery.TcpSocket
a normal, outgoing TCP socket
QNetworkProxyQuery.UdpSocket
a datagram-based UDP socket, which could send to multiple destinations
QNetworkProxyQuery.SctpSocket
a message-oriented, outgoing SCTP socket
QNetworkProxyQuery.TcpServer
a TCP server that listens for incoming connections from the network
QNetworkProxyQuery.UrlRequest
a more complex request which involves loading of a URL
QNetworkProxyQuery.SctpServer
an SCTP server that listens for incoming connections from the network
See also
- __init__(other)#
- Parameters:
other –
QNetworkProxyQuery
Constructs a
QNetworkProxyQuery
object that is a copy ofother
.- __init__(hostname, port[, protocolTag=""[, queryType=QNetworkProxyQuery.QueryType.TcpSocket]])
- Parameters:
hostname – str
port – int
protocolTag – str
queryType –
QueryType
Constructs a
QNetworkProxyQuery
of typequeryType
and sets the protocol tag to beprotocolTag
. This constructor is suitable forTcpSocket
queries, because it sets the peer hostname tohostname
and the peer’s port number toport
.- __init__(requestUrl[, queryType=QNetworkProxyQuery.QueryType.UrlRequest])
Constructs a
QNetworkProxyQuery
with the URLrequestUrl
and sets the query type toqueryType
.See also
- __init__(bindPort[, protocolTag=""[, queryType=QNetworkProxyQuery.QueryType.TcpServer]])
- Parameters:
bindPort – int
protocolTag – str
queryType –
QueryType
Constructs a
QNetworkProxyQuery
of typequeryType
and sets the protocol tag to beprotocolTag
. This constructor is suitable forTcpSocket
queries because it sets the local port number tobindPort
.Note that
bindPort
is of type quint16 to indicate the exact port number that is requested. The value of -1 (unknown) is not allowed in this context.See also
- __init__()
Constructs a default
QNetworkProxyQuery
object. By default, the query type will beTcpSocket
.- localPort()#
- Return type:
int
Returns the port number of the socket that will accept incoming packets from remote servers or -1 if the port is not known.
See also
- __ne__(other)#
- Parameters:
other –
QNetworkProxyQuery
- Return type:
bool
Returns
true
if thisQNetworkProxyQuery
object does not contain the same data asother
.- __eq__(other)#
- Parameters:
other –
QNetworkProxyQuery
- Return type:
bool
Returns
true
if thisQNetworkProxyQuery
object contains the same data asother
.- peerHostName()#
- Return type:
str
Returns the host name or IP address being of the outgoing connection being requested, or an empty string if the remote hostname is not known.
If the query type is
UrlRequest
, this function returns the host component of the URL being requested.See also
- peerPort()#
- Return type:
int
Returns the port number for the outgoing request or -1 if the port number is not known.
If the query type is
UrlRequest
, this function returns the port number of the URL being requested. In general, frameworks will fill in the port number from their default values.See also
- protocolTag()#
- Return type:
str
Returns the protocol tag for this
QNetworkProxyQuery
object, or an empty QString in case the protocol tag is unknown.In the case of queries of type
UrlRequest
, this function returns the value of the scheme component of the URL.See also
Returns the query type.
See also
- setLocalPort(port)#
- Parameters:
port – int
Sets the port number that the socket wishes to use locally to accept incoming packets from remote servers to
port
. The local port is most often used with theTcpServer
andUdpSocket
query types.Valid values are 0 to 65535 (with 0 indicating that any port number will be acceptable) or -1, which means the local port number is unknown or not applicable.
In some circumstances, for special protocols, it’s the local port number can also be used with a query of type
TcpSocket
. When that happens, the socket is indicating it wishes to use the port numberport
when connecting to a remote host.See also
- setPeerHostName(hostname)#
- Parameters:
hostname – str
Sets the hostname of the outgoing connection being requested to
hostname
. An empty hostname can be used to indicate that the remote host is unknown.The peer host name can also be used to indicate the expected source address of an incoming connection in the case of
UdpSocket
orTcpServer
query types.See also
- setPeerPort(port)#
- Parameters:
port – int
Sets the requested port number for the outgoing connection to be
port
. Valid values are 1 to 65535, or -1 to indicate that the remote port number is unknown.The peer port number can also be used to indicate the expected port number of an incoming connection in the case of
UdpSocket
orTcpServer
query types.See also
- setProtocolTag(protocolTag)#
- Parameters:
protocolTag – str
Sets the protocol tag for this
QNetworkProxyQuery
object to beprotocolTag
.The protocol tag is an arbitrary string that indicates which protocol is being talked over the socket, such as “http”, “xmpp”, “telnet”, etc. The protocol tag is used by the backend to return a request that is more specific to the protocol in question: for example, a HTTP connection could be use a caching HTTP proxy server, while all other connections use a more powerful SOCKSv5 proxy server.
See also
Sets the query type of this object to be
type
.See also
Sets the URL component of this
QNetworkProxyQuery
object to beurl
. Setting the URL will also set the protocol tag, the remote host name and port number. This is done so as to facilitate the implementation of the code that determines the proxy server to be used.See also
- swap(other)#
- Parameters:
other –
QNetworkProxyQuery
Swaps this network proxy query instance with
other
. This function is very fast and never fails.Returns the URL component of this
QNetworkProxyQuery
object in case of a query of typeUrlRequest
.See also