Qt 中的 DefaultProxy 究竟继承了什么
为 Qt 网络对象选择继承、直连或显式代理行为,不要把 DefaultProxy 当作系统设置的代名词。
在 Qt 中,DefaultProxy 表示该对象继承应用的代理选择。它并不表示“直接连接”,单凭名称也不能保证已经发现某个特定的操作系统设置。
| 选项 | 意图 |
|---|---|
| DefaultProxy | 使用应用级策略 |
| NoProxy | 请求直接连接 |
| 显式的 HTTP 或 SOCKS 代理 | 使用给出的端点和代理类型 |
例如,应用可以建立一个共享的HTTP 代理:
QNetworkProxy::setApplicationProxy(
QNetworkProxy(QNetworkProxy::HttpProxy, "proxy.example", 8080));
来自HTTP 代理列表的 HTTP 地址可以为获准的公开请求提供示例中的主机和端口,且无需代理认证。使用继承选择的管理器随后就能遵循该策略。而拿到显式端点或 NoProxy 的管理器,则是有意做出了本地选择。
当应用应当跟随操作系统时,请使用受支持的 QNetworkProxyFactory 系统配置接口。要把这个发现决策与某个具体 socket 或管理器所用的 enum 值分开。
在建立相关连接之前配置该选择。Qt 文档说明,在已经连接的 socket 上更改代理设置并不会把该连接迁移到新端点。