QNetworkProxyFactory Class
QNetworkProxyFactory 클래스는 세밀한 프록시 선택 기능을 제공합니다. 더 보기...
| 헤더: | #include <QNetworkProxyFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- QNetworkProxyFactory는 네트워크 프로그래밍 API의 일부입니다.
공개 함수
| 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 와 같이 다중 연결을 지원하는 특정 프레임워크에서도 팩토리를 설정할 수 있습니다. 이러한 객체에 팩토리가 설정되면, 해당 프레임워크에서 생성된 소켓에 대해서만 팩토리에 쿼리가 전송됩니다.
시스템 프록시
팩토리를 구성하여 시스템 프록시의 설정을 사용할 수 있습니다. 이 동작을 활성화하려면 setUseSystemConfiguration() 함수를 true로, 비활성화하려면 false로 호출하십시오.
마찬가지로, 팩토리의 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 객체 목록을 반환합니다.
이 클래스를 재구현할 때는 최소한 하나의 요소를 반환하도록 주의하십시오.
더 나은 프록시 대안을 결정할 수 없는 경우, 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()을 참조하십시오.
enable 를 true 로 설정하고 이 함수를 호출하면, 이미 설정된 모든 프록시 또는 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" 환경 변수에서 프록시 설정을 가져옵니다. 이 변수는 "http", "socks5" 또는 "socks5h" 중 하나의 스키마를 사용하는 URL이어야 합니다.
제한 사항
다음은 이 함수의 현재 버전에 적용되는 제한 사항입니다. 향후 Qt 버전에서는 여기에 나열된 일부 제한 사항이 해제될 수 있습니다.
- Windows 플랫폼에서 이 함수는 사용자 시스템의 구성에 따라 실행되는 데 몇 초가 소요될 수 있습니다.
[static] bool QNetworkProxyFactory::usesSystemConfiguration()
플랫폼별 프록시 설정 사용이 활성화되어 있는지 여부를 반환합니다.
© 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.