一、描述
QNetworkProxyFactory 是 QNetworkProxy 的扩展,允许应用程序根据请求代理的socket对使用哪些代理服务器进行更细粒度的控制。此类有个抽象类(含有一个纯虚函数)且方法都是静态的,所以这是一个工具类。
二、成员函数
1、[static] QList<QNetworkProxy> proxyForQuery(const QNetworkProxyQuery &query)
检查socket代理设置详细信息,返回一个 QNetworkProxy 对象列表,指示要使用的代理服务器。
2、[pure virtual] QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery())
检查socket代理设置详细信息,返回一个 QNetworkProxy 对象列表,指示要使用的代理服务器。
重新实现此类时,请注意至少返回一个元素。如果无法确定更好的代理替代方案,请使用 QNetworkProxy::DefaultProxy,它告诉查询代理的代码使用更高的替代方案。 例如,如果此工厂设置为 QNetworkAccessManager 对象,则 DefaultProxy 将告诉它查询应用程序级代理设置。
3、[static] void setApplicationProxyFactory(QNetworkProxyFactory *factory)
设置应用程序范围的代理工厂。
当所有其他代理选择请求返回 QNetworkProxy::DefaultProxy 时,应用程序范围的代理用作最后的手段。例如,QTcpSocket 对象可以有一个使用 QTcpSocket::setProxy()设置的代理,但如果没有设置,则会查询使用此函数设置的代理工厂类。
如果使用此函数设置代理工厂,则使用 QNetworkProxy::setApplicationProxy() 设置的任何应用程序级别代理都将被覆盖,并且 usesSystemConfiguration() 将返回 false。
4、[static] void setUseSystemConfiguration(bool enable)
允许使用特定于平台的代理设置,并且仅限这些设置。在 enable 设置为 true 的情况下调用此函数会重置已设置的任何代理或 QNetworkProxyFactory。
5、[static] QList<QNetworkProxy> systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery())
检查socket代理设置详细信息,返回一个 QNetworkProxy 对象列表,指示要使用的代理服务器。
此函数可用于确定特定于平台的代理设置。此函数将使用操作系统提供的库来确定给定连接的代理(如果存在此类库)。如果没有,这个函数将只返回一个 QNetworkProxy::NoProxy 类型的 QNetworkProxy。
6、[static] bool usesSystemConfiguration()
是否启用特定于平台的代理设置。