WinHttpGetProxyForUrlEx 함수(winhttp.h)

WinHttpGetProxyForUrlEx 함수는 지정된 URL에 대한 프록시 데이터를 검색합니다.

구문

WINHTTPAPI DWORD WinHttpGetProxyForUrlEx(
  [in] HINTERNET                 hResolver,
  [in] PCWSTR                    pcwszUrl,
  [in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
  [in] DWORD_PTR                 pContext
);

매개 변수

[in] hResolver

WinHttpCreateProxyResolver 함수에서 반환된 WinHTTP 확인자 핸들입니다.

[in] pcwszUrl

프록시 정보가 결정되는 URL을 포함하는 null로 종료된 유니코드 문자열에 대한 포인터입니다.

[in] pAutoProxyOptions

사용할 자동 프록시 옵션을 지정하는 WINHTTP_AUTOPROXY_OPTIONS 구조체에 대한 포인터입니다.

[in] pContext

완료 콜백 함수에 전달될 컨텍스트 데이터입니다.

반환 값

작업의 결과를 나타내는 상태 코드입니다.

다음 코드가 반환될 수 있습니다. Description
ERROR_IO_PENDING
작업이 비동기적으로 계속됩니다.
ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR
지정된 URL에 대한 프록시를 배치할 수 없는 경우 WinHttpGetProxyForUrlEx 에서 반환됩니다.
ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT
PAC(프록시 자동 구성) 파일에서 스크립트 코드를 실행하는 동안 오류가 발생했습니다.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
이 작업에 대해 제공된 핸들의 형식이 올바르지 않습니다.
ERROR_WINHTTP_INVALID_URL
URL이 올바르지 않습니다.
ERROR_WINHTTP_OPERATION_CANCELLED
작업이 완료되기 전에 요청이 작동 중인 핸들이 닫혔기 때문에 작업이 취소되었습니다.
ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT
PAC 파일을 다운로드할 수 없습니다. 예를 들어 PAC URL에서 참조하는 서버에 연결할 수 없거나 서버에서 404 NOT FOUND 응답을 반환했습니다.
ERROR_WINHTTP_UNRECOGNIZED_SCHEME
PAC 파일의 URL은 "http:" 또는 "https:" 이외의 체계를 지정했습니다.
ERROR_NOT_ENOUGH_MEMORY
메모리가 부족하여 요청된 작업을 완료할 수 없습니다. (Windows 오류 코드)

설명

이 함수는 HTTP 요청에 대한 프록시 설정을 자동으로 구성하기 위한 WPAD(웹 프록시 자동 검색) 프로토콜을 구현합니다. WPAD 프로토콜은 지정된 대상 URL에 사용할 프록시 서버를 식별하는 스크립트인 PAC(프록시 자동 구성) 파일을 다운로드합니다. PAC 파일은 일반적으로 회사 네트워크 환경 내의 IT 부서에 의해 배포됩니다. PAC 파일의 URL을 명시적으로 지정하거나 WinHttpGetProxyForUrlEx 에서 로컬 네트워크에서 PAC 파일의 위치를 자동으로 검색하도록 지시할 수 있습니다.

WinHttpGetProxyForUrlEx 는 ECMAScript 기반 PAC 파일만 지원합니다.

PAC 파일이 다른 URL에 대해 다른 프록시 서버를 반환할 수 있으므로 WinHttpGetProxyForUrlEx는 URL별로 호출되어야 합니다. PAC 파일을 사용하면 IT 부서가 대상 URL( lpcwszUrl 매개 변수로 지정됨)을 프록시 서버 배열의 특정 프록시에 매핑(해시)하여 프록시 서버 부하 분산을 구현할 수 있기 때문에 유용합니다.

자동 검색이 pAutoProxyOptions 구조의 dwFlags 멤버에 지정된 경우 WinHttpGetProxyForUrlEx는 autoproxy URL 및 autoproxy 스크립트를 캐시합니다. 자세한 내용은 Autoproxy Cache를 참조하세요.

WinHttpGetProxyForUrlExWinHttpGetProxyForUrl 이 제공하지 않는 완전히 비동기 및 취소 가능한 API를 제공합니다. WinHttpGetProxyForUrlEx 는 또한 애플리케이션이 "DIRECT"로 장애 조치(failover)를 더 잘 처리하고 원하는 경우 SOCKS를 이해할 수 있도록 PAC 스크립트에서 반환된 전체 프록시 목록을 애플리케이션에 제공합니다.

WinHttpGetProxyForUrlEx 는 항상 비동기적으로 실행되며 성공 시 ERROR_IO_PENDING 즉시 반환합니다. 콜백은 WinHttpOpen에서 제공하는 hSession에서 WinHttpSetStatusCallback을 호출하여 설정됩니다. 또는 WinHttpCreateProxyResolver에서 제공하는 hResolver에서 WinHttpSetStatusCallback을 호출하여 각 호출에 대한 특정 콜백을 만듭니다.

WinHttpCreateProxyResolver 전에 WinHttpSetStatusCallback을 호출해야 합니다. WinHttpSetStatusCallback을 호출할 때 WINHTTP_CALLBACK_FLAG_REQUEST_ERROR 사용 | WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE. 콜백 사용에 대한 자세한 내용은 WINHTTP_STATUS_CALLBACK 참조하세요.

상태 WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE 콜백이 반환되면 애플리케이션은 WinHttpGetProxyForUrlEx를 발급하는 데 사용되는 해결 프로그램 핸들에서 WinHttpGetProxyResult를 호출하여 해당 호출의 결과를 받을 수 있습니다.

ERROR_IO_PENDING 반환한 후 호출이 실패하면 WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 콜백이 실행됩니다.

이 함수는 항상 out-of-process를 실행합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winhttp.h
라이브러리 Winhttp.lib
DLL Winhttp.dll