PySide6.QtNetwork.QNetworkProxyQuery¶
- class QNetworkProxyQuery¶
QNetworkProxyQuery
类用于查询套接字的代理设置。更多…概要¶
方法¶
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()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QNetworkProxyQuery
保存了正在创建的套接字或正在发出的请求的详细信息。它被QNetworkProxy
和QNetworkProxyFactory
使用,以允许应用程序根据查询的详细信息更精细地控制使用哪些代理服务器。这允许应用程序根据协议或目标主机名应用不同的设置。QNetworkProxyQuery
支持以下选择代理的标准:查询的类型
使用的本地端口号
目标主机名
目标端口号
协议名称,例如“http”或“ftp”
请求的URL
目标主机名是传出连接套接字中连接的主机。它是传递给
connectToHost()
的hostName
参数,或者是使用QNetworkRequest
请求的URL的主机部分。目标端口号是传出套接字请求连接的端口,而本地端口号是套接字在尝试外部连接之前希望本地使用的端口。在大多数情况下,本地端口号仅由监听套接字(
QTcpSocket
)或数据报套接字(QUdpSocket
)使用。协议名称是一个任意字符串,表示尝试建立的连接类型。例如,它可以匹配URL的方案,如“http”、“https”和“ftp”。在大多数情况下,代理选择不会因协议而改变,但提供此信息是为了在可能做出更好选择的情况下使用,例如为基于HTTP的连接选择缓存HTTP代理,而为所有其他连接选择更强大的SOCKSv5代理。
某些标准在所有类型的查询中可能没有意义。下表列出了根据查询类型最常用的标准。
查询类型
描述
请求连接到远程服务器的普通套接字,如
QTcpSocket
。对等主机名和对等端口与传递给connectToHost()
的值匹配。本地端口通常为-1,表示套接字对使用哪个端口没有偏好。URL组件未使用。基于数据报的套接字,既可以发送也可以接收。本地端口、远程主机或远程端口字段都可以使用或留空,具体取决于套接字的特性。URL组件未被使用。
面向消息的套接字,请求连接到远程服务器。对等主机名和对等端口与传递给
connectToHost()
的值匹配。本地端口通常为-1,表示套接字对使用哪个端口没有偏好。URL组件未使用。被动服务器套接字,监听端口并等待来自网络的传入连接。通常,只使用本地端口,但在特定情况下可以使用远程地址,例如指示预期的远程主机。不使用URL组件。
一种更高级别的请求,例如来自
QNetworkAccessManager
的请求。这些请求不可避免地会使用一个出站的TCP套接字,但提供此查询类型是为了表明URL组件中存在更详细的信息。为了便于实现,URL的主机和端口被设置为目标地址。监听SCTP端口的被动服务器套接字,等待来自网络的传入连接。通常,只使用本地端口,但在特定情况下可以使用远程地址,例如指示预期连接的远程主机。URL组件未使用。
需要注意的是,任何标准都可能缺失或未知(主机名或协议名称为空QString,端口号为-1)。如果发生这种情况,执行查询的函数应尽力猜测或应用一些实现定义的默认值。
- class QueryType¶
描述了一个
QNetworkProxyQuery
查询的类型。常量
描述
QNetworkProxyQuery.TcpSocket
一个普通的、出站的TCP套接字
QNetworkProxyQuery.UdpSocket
基于数据报的UDP套接字,可以发送到多个目的地
QNetworkProxyQuery.SctpSocket
面向消息的、出站的SCTP套接字
QNetworkProxyQuery.TcpServer
一个TCP服务器,监听来自网络的传入连接
QNetworkProxyQuery.UrlRequest
一个更复杂的请求,涉及加载URL
QNetworkProxyQuery.SctpServer
一个监听来自网络的传入连接的SCTP服务器
- __init__()¶
构造一个默认的
QNetworkProxyQuery
对象。默认情况下,查询类型将是TcpSocket
。- __init__(other)
- Parameters:
其他 –
QNetworkProxyQuery
构造一个
QNetworkProxyQuery
对象,它是other
的副本。- __init__(requestUrl[, queryType=QNetworkProxyQuery.QueryType.UrlRequest])
使用URL
requestUrl
构造一个QNetworkProxyQuery
并将查询类型设置为queryType
。- __init__(bindPort[, protocolTag=""[, queryType=QNetworkProxyQuery.QueryType.TcpServer]])
- Parameters:
bindPort – int
protocolTag – str
queryType –
QueryType
构造一个类型为
queryType
的QNetworkProxyQuery
,并将协议标签设置为protocolTag
。此构造函数适用于TcpSocket
查询,因为它将本地端口号设置为bindPort
。请注意,
bindPort
的类型是 quint16,用于指示请求的确切端口号。在此上下文中,不允许使用 -1(未知)的值。另请参阅
- __init__(hostname, port[, protocolTag=""[, queryType=QNetworkProxyQuery.QueryType.TcpSocket]])
- Parameters:
hostname – str
port – int
protocolTag – str
queryType –
QueryType
构造一个类型为
queryType
的QNetworkProxyQuery
,并将协议标签设置为protocolTag
。此构造函数适用于TcpSocket
查询,因为它将对等主机名设置为hostname
,并将对等端口号设置为port
。- localPort()¶
- Return type:
整数
返回将接受来自远程服务器的传入数据包的套接字的端口号,如果端口未知则返回-1。
- __ne__(other)¶
- Parameters:
其他 –
QNetworkProxyQuery
- Return type:
布尔
如果此
QNetworkProxyQuery
对象不包含与other
相同的数据,则返回true
。- __eq__(other)¶
- Parameters:
其他 –
QNetworkProxyQuery
- Return type:
布尔
如果此
QNetworkProxyQuery
对象包含与other
相同的数据,则返回true
。- peerHostName()¶
- Return type:
字符串
返回所请求的出站连接的主机名或IP地址,如果远程主机名未知,则返回空字符串。
如果查询类型是
UrlRequest
,此函数返回所请求URL的主机部分。- peerPort()¶
- Return type:
整数
返回传出请求的端口号,如果端口号未知则返回-1。
如果查询类型是
UrlRequest
,此函数返回所请求URL的端口号。通常,框架会从其默认值中填充端口号。- protocolTag()¶
- Return type:
字符串
返回此
QNetworkProxyQuery
对象的协议标签,如果协议标签未知,则返回一个空的QString。在查询类型为
UrlRequest
的情况下,此函数返回URL的方案组件的值。另请参阅
返回查询类型。
另请参阅
- setLocalPort(port)¶
- Parameters:
端口 – int
设置套接字希望本地使用的端口号,以接受来自远程服务器的传入数据包到
port
。本地端口最常用于TcpServer
和UdpSocket
查询类型。有效值为0到65535(其中0表示任何端口号都可接受)或-1,表示本地端口号未知或不适用。
在某些情况下,对于特殊协议,本地端口号也可以与类型为
TcpSocket
的查询一起使用。当这种情况发生时,套接字表示它希望在连接到远程主机时使用端口号port
。- setPeerHostName(hostname)¶
- Parameters:
主机名 – str
设置请求的出站连接的主机名为
hostname
。空的主机名可用于表示远程主机未知。在对等主机名的情况下,也可以用于指示传入连接的预期源地址,例如
UdpSocket
或TcpServer
查询类型。- setPeerPort(port)¶
- Parameters:
端口 – int
设置传出连接的请求端口号为
port
。有效值为1到65535,或-1表示远程端口号未知。在对等端口号的情况下,也可以用于指示预期传入连接的端口号,例如
UdpSocket
或TcpServer
查询类型。- setProtocolTag(protocolTag)¶
- Parameters:
protocolTag – str
将此
QNetworkProxyQuery
对象的协议标签设置为protocolTag
。协议标签是一个任意字符串,用于指示通过套接字进行通信的协议,例如“http”、“xmpp”、“telnet”等。后端使用协议标签来返回更特定于该协议的请求:例如,HTTP连接可以使用缓存HTTP代理服务器,而所有其他连接则使用更强大的SOCKSv5代理服务器。
另请参阅
将此对象的查询类型设置为
type
。另请参阅
将此
QNetworkProxyQuery
对象的URL组件设置为url
。设置URL还将设置协议标签、远程主机名和端口号。这样做是为了方便实现确定要使用的代理服务器的代码。- swap(other)¶
- Parameters:
其他 –
QNetworkProxyQuery
将此网络代理查询实例与
other
交换。此函数非常快且永远不会失败。返回此
QNetworkProxyQuery
对象的URL组件,如果查询类型为UrlRequest
。另请参阅