QNetworkProxyQuery query(QUrl(QStringLiteral("https://service.example.net/")));
const auto candidates = QNetworkProxyFactory::systemProxyForQuery(query);

このQt Networkクエリは1つのURLに対するポリシーを検査します。対応するQt Networkヘッダーを含めてください。接続を開いたり、プロセス内のすべてのソケットの経路を特定したりはしません。

QNetworkProxyQueryには宛先情報とクエリ種別が含まれます。TCP、UDP、サーバー操作では、HTTPキャッシュプロキシやHTTPトンネル、またはSOCKSプロキシとは異なる機能が必要になる場合があります。都合のよい無関係な公開ページではなく、失敗した操作について問い合わせてください。

各候補の種別を解釈します。NoProxyは意図的に直接アクセスを選択します。その結果でホストが空に見えても、検出の失敗ではありません。優先順位と代替候補を保持してください。

ルーティングを動的に保つ必要がある場合は、参加するソケットまたはQNetworkAccessManagerに対して、サポートされているシステム構成またはプロキシファクトリの統合を使用します。最初の結果を固定のアプリケーションエンドポイントとして凍結すると、その後の宛先ごとの判断が失われます。実際のマネージャーまたはインストール済みのアプリケーションファクトリを調べてください。その隣の診断呼び出しは、同じポリシーを使用していることを証明しません。

埋め込みブラウザはQt Networkとは異なるネットワークスタックを持つ場合があります。有効なQtソケット候補は、すべてのコンポーネントが同じプロトコルや認証をサポートすることを証明しません。

関連記事