QNetworkProxyFactory 類

The QNetworkProxyFactory class provides fine-grained proxy selection. 更多...

頭: #include <QNetworkProxyFactory>
qmake: QT += network
Since: Qt 4.5

公共函數

QNetworkProxyFactory ()
virtual ~QNetworkProxyFactory ()
virtual QList<QNetworkProxy> queryProxy (const QNetworkProxyQuery & query = QNetworkProxyQuery()) = 0

靜態公共成員

QList<QNetworkProxy> proxyForQuery (const QNetworkProxyQuery & query )
void setApplicationProxyFactory (QNetworkProxyFactory * factory )
void setUseSystemConfiguration (bool enable )
QList<QNetworkProxy> systemProxyForQuery (const QNetworkProxyQuery & query = QNetworkProxyQuery())
bool usesSystemConfiguration ()

詳細描述

The QNetworkProxyFactory class provides fine-grained proxy selection.

QNetworkProxyFactory is an extension to QNetworkProxy ,允許應用程序對使用哪種代理服務器有更細粒度控製 (從屬套接字請求代理)。例如,這允許應用程序根據協議或目標主機名應用不同設置。

QNetworkProxyFactory can be set globally for an application, in which case it will override any global proxies set with QNetworkProxy::setApplicationProxy ()。若全局設置,則任何采用 Qt 創建的套接字都將查詢工廠以確定要使用的代理。

也可以在支持多個連接的某些框架中設置工廠,譬如 QNetworkAccessManager 。當在這種對象上設置時,將隻查詢由該框架創建的套接字的工廠。

係統代理

可以把工廠配置為使用係統代理的設置。調用 setUseSystemConfiguration () 函數采用 true 以啓用此行為,或 false 以禁用此行為。

同樣,可以使用工廠以直接查詢係統代理通過調用其 systemProxyForQuery () 函數。

警告: 從屬用戶係統配置,在某些平颱使用的係統代理特徵可能會受到限製。 systemProxyForQuery () 文檔編製包含那些受影響平颱的局限性列錶。

成員函數文檔編製

QNetworkProxyFactory:: QNetworkProxyFactory ()

創建 QNetworkProxyFactory 對象。

由於 QNetworkProxyFactory is an abstract class, you cannot create objects of type QNetworkProxyFactory 直接。

[虛擬] QNetworkProxyFactory:: ~QNetworkProxyFactory ()

銷毀 QNetworkProxyFactory 對象。

[static] QList < QNetworkProxy > QNetworkProxyFactory:: proxyForQuery (const QNetworkProxyQuery & query )

此函數接受查詢請求 query ,審查套接字或請求類型的細節,並返迴列錶為 QNetworkProxy 對象 (按首選次序指示要使用的代理服務器)。

[pure virtual] QList < QNetworkProxy > QNetworkProxyFactory:: queryProxy (const QNetworkProxyQuery & query = QNetworkProxyQuery())

此函數接受查詢請求 query ,審查套接字或請求類型的細節,並返迴列錶為 QNetworkProxy 對象 (按首選次序指示要使用的代理服務器)。

當重實現此類時,小心至少要返迴一元素。

若無法確定更好的代理替代,使用 QNetworkProxy::DefaultProxy ,它告訴代碼查詢代理以使用更高替代。例如,若把此工廠設置給 QNetworkAccessManager 對象,DefaultProxy 將告訴它以查詢應用程序級代理設置。

若此工廠被設置為應用程序代理工廠,DefaultProxy 和 Noproxy 將擁有相同含義。

[static] void QNetworkProxyFactory:: setApplicationProxyFactory ( QNetworkProxyFactory * factory )

把應用程序範圍代理工廠設為 factory 。此函數將擁有該對象的所有權,且會刪除它當有必要時。

應用程序範圍代理被用作最後手段,當所有其它代理選擇請求返迴 QNetworkProxy::DefaultProxy 。例如, QTcpSocket 對象可以擁有代理設置采用 QTcpSocket::setProxy ,但若設為 none,將查詢采用此函數設置的代理工廠類。

若采用此函數設置代理工廠,則任何應用程序級代理設置采用 QNetworkProxy::setApplicationProxy 將被覆寫,且 usesSystemConfiguration () 會返迴 false .

另請參閱 QNetworkProxy::setApplicationProxy (), QAbstractSocket::proxy (),和 QAbstractSocket::setProxy ().

[static] void QNetworkProxyFactory:: setUseSystemConfiguration ( bool enable )

啓用特定平颱代理設置的使用,且隻使用那些。見 systemProxyForQuery () 瞭解更多信息。

調用此函數采用 enable 設為 true 重置任何代理或 QNetworkProxyFactory 已經設置。

注意: systemProxyForQuery () 文檔編製,瞭解使用係統代理的相關局限性列錶。

該函數在 Qt 4.6 引入。

[static] QList < QNetworkProxy > QNetworkProxyFactory:: systemProxyForQuery (const QNetworkProxyQuery & query = QNetworkProxyQuery())

此函數接受查詢請求 query ,審查套接字或請求類型的細節,並返迴列錶為 QNetworkProxy 對象 (按首選次序指示要使用的代理服務器)。

此函數可用於確定特定於平颱的代理設置。此函數將使用由操作係統提供的庫來確定給定連接的代理,若存在這種庫。若不存在,此函數將僅僅返迴 QNetworkProxy 類型 QNetworkProxy::NoProxy .

在 Windows,此函數將使用 WinHTTP DLL 功能。不管它的名稱,Microsoft 建議所有要求網絡連接的應用程序都使用它,而不僅僅是 HTTP。這會考慮采用 proxycfg.exe 工具在注冊錶中設置的代理設置。若找不到這些設置,此函數將嘗試獲得 Internet Explorer 設置並使用它們。

On macOS , this function will obtain the proxy settings using the SystemConfiguration 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.

在其它係統,此函數將從 http_proxy 環境變量中拾取代理設置。該變量必須是使用以下方案之一的 URL:http、socks5 或 socks5h。

局限性

這些是此函數當前版本的局限性。未來版本的 Qt 可能消除這裏列齣的某些局限性。

  • On macOS , this function will ignore the Proxy Auto Configuration settings, since it cannot execute the associated ECMAScript code.
  • 在 Windows 平颱,此函數可能需要幾秒鍾來執行 (取決於用戶的係統配置)。

[static] bool QNetworkProxyFactory:: usesSystemConfiguration ()

返迴是否已啓用特定平颱代理設置的使用。

該函數在 Qt 5.8 引入。