Auf dieser Seite

QNetworkProxyFactory Class

Die Klasse „QNetworkProxyFactory“ ermöglicht eine detaillierte Proxy-Auswahl. Mehr dazu...

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

Öffentliche Funktionen

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

Statische öffentliche Mitglieder

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

Ausführliche Beschreibung

QNetworkProxyFactory ist eine Erweiterung von ` QNetworkProxy`, die es Anwendungen ermöglicht, je nach dem Socket, der den Proxy anfordert, eine feinere Kontrolle darüber auszuüben, welche Proxy-Server verwendet werden. Dadurch kann eine Anwendung unterschiedliche Einstellungen anwenden, beispielsweise je nach Protokoll oder Ziel-Hostname.

QNetworkProxyFactory kann global für eine Anwendung festgelegt werden; in diesem Fall überschreibt sie alle mit ` QNetworkProxy::setApplicationProxy()` festgelegten globalen Proxys. Bei globaler Festlegung fragen alle mit Qt erstellten Sockets die Factory ab, um den zu verwendenden Proxy zu ermitteln.

Eine Factory kann auch in bestimmten Frameworks festgelegt werden, die mehrere Verbindungen unterstützen, wie z. B. ` QNetworkAccessManager`. Wenn sie für ein solches Objekt festgelegt wird, wird die Factory nur für Sockets abgefragt, die von diesem Framework erstellt wurden.

System-Proxys

Sie können eine Factory so konfigurieren, dass sie die Einstellungen des Systemproxys verwendet. Rufen Sie die Funktion ` setUseSystemConfiguration()` mit `true` auf, um dieses Verhalten zu aktivieren, oder mit `false`, um es zu deaktivieren.

Ebenso können Sie eine Factory verwenden, um Abfragen direkt an den Systemproxy zu richten, indem Sie dessen Funktion „ systemProxyForQuery()“ aufrufen.

Warnung: Je nach Konfiguration des Systems des Benutzers kann die Nutzung von System-Proxy-Funktionen auf bestimmten Plattformen Einschränkungen unterliegen. Die Dokumentation zu ` systemProxyForQuery()` enthält eine Liste dieser Einschränkungen für die betroffenen Plattformen.

Dokumentation zu den Member-Funktionen

QNetworkProxyFactory::QNetworkProxyFactory()

Erstellt ein QNetworkProxyFactory-Objekt.

Da QNetworkProxyFactory eine abstrakte Klasse ist, können Sie keine Objekte vom Typ QNetworkProxyFactory direkt erstellen.

[virtual noexcept] QNetworkProxyFactory::~QNetworkProxyFactory()

Löscht das „ QNetworkProxyFactory “-Objekt.

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

Diese Funktion nimmt die Abfrageanforderung „ query “ entgegen, prüft die Details zum Socket- oder Anforderungstyp und gibt eine Liste von „ QNetworkProxy “-Objekten zurück, die die zu verwendenden Proxy-Server in der Reihenfolge ihrer Präferenz angeben.

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

Diese Funktion nimmt die Abfrageanforderung „ query “ entgegen, prüft die Details zum Socket- oder Anforderungstyp und gibt eine Liste von „ QNetworkProxy “-Objekten zurück, die die zu verwendenden Proxy-Server in der Reihenfolge ihrer Präferenz angeben.

Achten Sie bei der Neuimplementierung dieser Klasse darauf, mindestens ein Element zurückzugeben.

Wenn Sie keine bessere Proxy-Alternative ermitteln können, verwenden Sie „ QNetworkProxy::DefaultProxy “, wodurch der Code, der nach einem Proxy fragt, angewiesen wird, eine übergeordnete Alternative zu verwenden. Ist diese Factory beispielsweise auf ein „ QNetworkAccessManager “-Objekt gesetzt, weist „DefaultProxy“ den Code an, die Proxy-Einstellungen auf Anwendungsebene abzufragen.

Wenn diese Factory als Anwendungsproxy-Factory festgelegt ist, haben „DefaultProxy“ und „NoProxy“ dieselbe Bedeutung.

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

Legt die anwendungsweite Proxy-Factory auf „ factory “ fest. Diese Funktion übernimmt die Verantwortung für dieses Objekt und löscht es bei Bedarf.

Der anwendungsweite Proxy wird als letzter Ausweg verwendet, wenn alle anderen Proxy-Auswahlanfragen „ QNetworkProxy::DefaultProxy “ zurückgegeben haben. Beispielsweise kann für Objekte vom Typ „ QTcpSocket “ mit „QTcpSocket::setProxy“ ein Proxy festgelegt werden; ist jedoch keiner festgelegt, wird die mit dieser Funktion festgelegte Proxy-Factory-Klasse abgefragt.

Wenn Sie mit dieser Funktion eine Proxy-Factory festlegen, werden alle mit ` QNetworkProxy::setApplicationProxy ` festgelegten Proxys auf Anwendungsebene überschrieben, und ` usesSystemConfiguration()` gibt ` false` zurück.

Siehe auch ` QNetworkProxy::setApplicationProxy()`, ` QAbstractSocket::proxy()` und ` QAbstractSocket::setProxy()`.

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

Aktiviert die Verwendung der plattformspezifischen Proxy-Einstellungen – und ausschließlich dieser. Weitere Informationen finden Sie unter systemProxyForQuery().

Wird diese Funktion aufgerufen, während „ enable “ auf „ true “ gesetzt ist, werden alle bereits festgelegten Proxy- oder „ QNetworkProxyFactory “-Einstellungen zurückgesetzt.

Hinweis: Eine Liste der Einschränkungen bei der Verwendung von Systemproxysfinden Sie in der Dokumentation zu systemProxyForQuery().

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

Diese Funktion nimmt die Abfrageanforderung „ query “ entgegen, prüft die Details zum Socket- oder Anforderungstyp und gibt eine Liste von „ QNetworkProxy “-Objekten zurück, die die zu verwendenden Proxy-Server in der Reihenfolge ihrer Präferenz angeben.

Diese Funktion kann verwendet werden, um die plattformspezifischen Proxy-Einstellungen zu ermitteln. Diese Funktion nutzt die vom Betriebssystem bereitgestellten Bibliotheken, um den Proxy für eine bestimmte Verbindung zu ermitteln, sofern solche Bibliotheken vorhanden sind. Ist dies nicht der Fall, gibt diese Funktion lediglich eine ` QNetworkProxy ` vom Typ ` QNetworkProxy::NoProxy` zurück.

Unter Windows nutzt diese Funktion die WinHTTP-DLL-Funktionen. Trotz ihres Namens empfiehlt Microsoft, sie für alle Anwendungen zu verwenden, die Netzwerkverbindungen erfordern, nicht nur für HTTP. Dabei werden die Proxy-Einstellungen berücksichtigt, die mit dem Tool „proxycfg.exe“ in der Registrierung festgelegt wurden. Werden diese Einstellungen nicht gefunden, versucht diese Funktion, die Einstellungen von Internet Explorer abzurufen und zu verwenden.

Unter macOS ruft diese Funktion die Proxy-Einstellungen mithilfe des CFNetwork-Frameworks von Apple ab. Sie wendet die FTP-, HTTP- und HTTPS-Proxy-Konfigurationen auf Anfragen an, die jeweils das Protokoll-Tag „ftp“, „http“ und „https“ enthalten. Ist der SOCKS-Proxy in dieser Konfiguration aktiviert, verwendet diese Funktion den SOCKS-Server für alle Abfragen. Ist SOCKS nicht aktiviert, wird der HTTPS-Proxy für alle TcpSocket- und UrlRequest-Abfragen verwendet.

Auf Systemen, die für die Unterstützung von libproxy konfiguriert sind, greift diese Funktion auf libproxy zurück, um die Proxy-Einstellungen abzurufen. Je nach libproxy-Konfiguration kann dies wiederum auf Desktop-Einstellungen, Umgebungsvariablen usw. delegiert werden.

Auf anderen Systemen bezieht diese Funktion die Proxy-Einstellungen aus der Umgebungsvariablen „http_proxy“. Diese Variable muss eine URL sein, die eines der folgenden Schemata verwendet: „http“, „socks5“ oder „socks5h“.

Einschränkungen

Dies sind die Einschränkungen für die aktuelle Version dieser Funktion. Zukünftige Versionen von Qt könnten einige der hier aufgeführten Einschränkungen aufheben.

  • Auf Windows-Plattformen kann die Ausführung dieser Funktion je nach Konfiguration des Systems des Benutzers mehrere Sekunden dauern.

[static] bool QNetworkProxyFactory::usesSystemConfiguration()

Gibt zurück, ob die Verwendung plattformspezifischer Proxy-Einstellungen aktiviert ist.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.