QNetworkProxyFactory Class

QNetworkProxyFactory クラスは、きめ細かいプロキシ選択を提供します。詳細...

Header: #include <QNetworkProxyFactory>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

パブリック関数

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()

詳細説明

QNetworkProxyFactory はQNetworkProxy を拡張したもので、プロキシを要求するソケットに応じて、どのプロキシサーバを使用するかをアプリケーションがより細かく制御できるようにします。これにより、アプリケーションは例えばプロトコルや宛先ホスト名に応じて異なる設定を適用することができる。

QNetworkProxyFactory はアプリケーションに対してグローバルに設定することもでき、その場合はQNetworkProxy::setApplicationProxy() で設定されたグローバルプロキシを上書きします。グローバルに設定された場合、Qt で作成されたソケットはファクトリーに問い合わせ、使用するプロキシを決定します。

ファクトリーは、QNetworkAccessManager のような、複数の接続をサポートする特定のフレームワークでも設定できます。このようなオブジェクトに設定すると、そのフレームワークで作成されたソケットに対してのみ、ファクトリーに問い合わせが行われます。

システムプロキシ

システムプロキシの設定を使用するようにファクトリーを構成することができます。この動作を有効にするには true を、無効にするには false を指定してsetUseSystemConfiguration() 関数を呼び出します。

同様に、systemProxyForQuery() 関数をコールすることで、 ファクトリを使用してシステムプロキシに直接問い合わせを行うこともできます。

警告 ユーザのシステム構成によっては、特定のプラットフォームでシステム・プロキシ機能を使用することが制限される場合があります。systemProxyForQuery() のドキュメントに、影響を受けるプラットフォームに関する制限事項のリストが記載されています。

メンバ関数のドキュメント

QNetworkProxyFactory::QNetworkProxyFactory()

QNetworkProxyFactory オブジェクトを作成します。

QNetworkProxyFactory は抽象クラスなので、QNetworkProxyFactory 型のオブジェク トを直接作成することはできません。

[virtual noexcept] 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 オブジェクトのリストを優先度の高い順に返す。

このクラスを再実装する場合は、少なくとも1つの要素を返すように注意してください。

よりよいプロキシの代替を決定できない場合は、QNetworkProxy::DefaultProxy を使用します。これは、プロキシを問い合わせるコードに、より上位の代替を使用するように指示します。例えば、このファクトリーがQNetworkAccessManager オブジェクトに設定されている場合、DefaultProxy はアプリケーションレベルのプロキシ設定を問い合わせるように指示します。

このファクトリーがアプリケーションプロキシファクトリーとして設定されている場合、DefaultProxy と NoProxy は同じ意味になります。

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

アプリケーション全体のプロキシファクトリーをfactory に設定します。この関数はそのオブジェクトの所有権を取得し、必要に応じて削除します。

アプリケーション全体のプロキシは、他のすべてのプロキシ選択要求がQNetworkProxy::DefaultProxy を返したときの最後の手段として使用される。例えば、QTcpSocket オブジェクトは QTcpSocket::setProxy でプロキシを設定できますが、何も設定されていない場合、この関数で設定されたプロキシ・ファクトリ・クラスが照会されます。

この関数でプロキシファクトリを設定した場合、QNetworkProxy::setApplicationProxy で設定されたアプリケーションレベルのプロキシはすべてオーバーライドされ、usesSystemConfiguration() はfalse を返します。

QNetworkProxy::setApplicationProxy()、QAbstractSocket::proxy()、QAbstractSocket::setProxy()も参照

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

プラットフォーム固有のプロキシ設定を使用できるようにします。詳細はsystemProxyForQuery() を参照。

enabletrue に設定してこの関数を呼び出すと、すでに設定されているプロキシまたはQNetworkProxyFactory がリセットされます。

注意: システム・プロキシを使用する際の制限事項については、systemProxyForQuery() のドキュメントを参照。

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

この関数はクエリリクエスト(query)を受け取り、ソケットのタイプやリクエストの詳細を調べ、使用するプロキシサーバを示すQNetworkProxy オブジェクトのリストを優先度の高い順に返す。

この関数はプラットフォーム固有のプロキシ設定を決定するために使用できる。もしそのようなライブラリがあれば、この関数はオペレーティングシステムが提供する ライブラリを使用して、指定された接続のプロキシを決定する。存在しない場合、この関数はQNetworkProxy::NoProxy 型のQNetworkProxy を返します。

Windowsでは、この関数はWinHTTP DLL関数を使用する。その名前にもかかわらず、MicrosoftはHTTPだけでなく、ネットワーク接続を必要とするすべてのアプリケーションにこの関数を使用することを推奨しています。これは、proxycfg.exeツールでレジストリに設定されたプロキシ設定を尊重する。これらの設定が見つからない場合、この関数はInternet Explorerの設定を取得し、それを使用しようとする。

macOSでは、この関数はAppleのCFNetworkフレームワークを使用してプロキシ設定を取得します。プロトコルタグ "ftp"、"http"、"https "を含むクエリに対して、それぞれFTP、HTTP、HTTPSプロキシ設定を適用する。その設定でSOCKSプロキシが有効になっている場合、この関数はすべてのクエリにSOCKSサーバーを使用する。SOCKSが有効でない場合、すべてのTcpSocketおよびUrlRequestクエリにHTTPSプロキシを使用します。

libproxy サポートが設定されているシステムでは、この関数は libproxy に依存してプロキシ設定を取得します。libproxyの設定によっては、デスクトップ設定や環境変数などに委譲されます。

その他のシステムでは、この関数は "http_proxy "環境変数からプロキシ設定を取得します。この変数は、以下のスキームのいずれかを使用したURLでなければならない:「http"、"socks5"、"socks5h "のいずれかでなければならない。

制限事項

これらは、この関数の現在のバージョンにおける制限事項です。Qt の将来のバージョンでは、ここに挙げた制限事項の一部が解除される可能性があります。

  • Windows プラットフォームでは、ユーザーのシステムの設定によっては、この関数の実行に数秒かかる場合があります。

[static] bool QNetworkProxyFactory::usesSystemConfiguration()

プラットフォーム固有のプロキシ設定が有効かどうかを返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。