QNetworkProxyFactory Class
QNetworkProxyFactory 클래스는 세분화된 프록시 선택 기능을 제공합니다. 더 보기...
Header: | #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() 함수를 참으로 호출하고, 비활성화하려면 거짓으로 호출합니다.
마찬가지로 팩토리를 사용하여 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에 의존합니다. 라이브러리 프록시 구성에 따라 데스크톱 설정, 환경 변수 등에 위임할 수도 있습니다.
다른 시스템에서는 이 함수가 "http_proxy" 환경 변수에서 프록시 설정을 가져옵니다. 이 변수는 다음 체계 중 하나를 사용하는 URL이어야 합니다: "http", "socks5" 또는 "socks5h".
제한 사항
다음은 이 함수의 현재 버전에 대한 제한 사항입니다. 향후 Qt 버전에서는 여기에 나열된 제한 사항 중 일부가 해제될 수 있습니다.
- Windows 플랫폼에서 이 함수는 사용자 시스템 구성에 따라 실행하는 데 몇 초가 걸릴 수 있습니다.
[static]
bool QNetworkProxyFactory::usesSystemConfiguration()
플랫폼별 프록시 설정의 사용 여부를 반환합니다.
© 2025 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.