Функция WinHttpGetProxyForUrl (winhttp.h)
Функция WinHttpGetProxyForUrl извлекает данные прокси-сервера для указанного URL-адреса.
Синтаксис
WINHTTPAPI BOOL WinHttpGetProxyForUrl(
[in] HINTERNET hSession,
[in] LPCWSTR lpcwszUrl,
[in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
[out] WINHTTP_PROXY_INFO *pProxyInfo
);
Параметры
[in] hSession
Дескриптор сеанса WinHTTP, возвращаемый функцией WinHttpOpen .
[in] lpcwszUrl
Указатель на строку Юникода с пустым завершением, содержащую URL-адрес HTTP-запроса, который приложение готовится к отправке.
[in] pAutoProxyOptions
Указатель на структуру WINHTTP_AUTOPROXY_OPTIONS , указывающую параметры автоматического прокси-сервера.
[out] pProxyInfo
Указатель на структуру WINHTTP_PROXY_INFO , которая получает параметр прокси-сервера. Затем эта структура применяется к дескриптору запроса с помощью параметра WINHTTP_OPTION_PROXY. Освободите строки lpszProxy и lpszProxyBypass , содержащиеся в этой структуре (если они не имеют значение NULL), с помощью функции GlobalFree .
Возвращаемое значение
Если функция выполняется успешно, функция возвращает значение TRUE.
Если функция завершается сбоем, она возвращает значение FALSE. Для получения расширенных данных об ошибках вызовите Метод GetLastError.
Возможные коды ошибок включают folllowing.
Код ошибки | Описание |
---|---|
|
Возвращается WinHttpGetProxyForUrl , если не удается найти прокси-сервер для указанного URL-адреса. |
|
Произошла ошибка при выполнении кода скрипта в файле автоматической настройки прокси-сервера (PAC). |
|
Для этой операции указан неправильный тип дескриптора. |
|
Произошла внутренняя ошибка. |
|
Недопустимый URL-адрес. |
|
Попытка входа завершилась сбоем. При обнаружении этой ошибки закройте дескриптор запроса с помощью WinHttpCloseHandle. Перед повтором функции, которая изначально вызвала эту ошибку, необходимо создать новый дескриптор запроса. |
|
Операция была отменена, как правило, из-за того, что дескриптор, с которым выполнялся запрос, был закрыт до завершения операции. |
|
Не удалось скачать PAC-файл. Например, сервер, на который ссылается URL-адрес PAC, может быть недоступен, или сервер вернул ответ 404 NOT FOUND. |
|
В URL-адресе PAC-файла указана схема, отличаемая от "http:" или "https:". |
|
Недостаточно памяти для выполнения запрошенной операции. (Код ошибки Windows) |
Комментарии
Эта функция реализует протокол автоматического обнаружения веб-прокси (WPAD) для автоматической настройки параметров прокси-сервера для HTTP-запроса. Протокол WPAD скачивает файл автоматической настройки прокси-сервера (PAC), который представляет собой скрипт, который определяет прокси-сервер, используемый для заданного целевого URL-адреса. PAC-файлы обычно развертываются ИТ-отделом в среде корпоративной сети. URL-адрес PAC-файла можно указать явным образом или указать WinHttpGetProxyForUrl для автоматического обнаружения расположения PAC-файла в локальной сети.
WinHttpGetProxyForUrl поддерживает только PAC-файлы на основе ECMAScript.
WinHttpGetProxyForUrl необходимо вызывать для каждого URL-адреса, так как PAC-файл может возвращать другой прокси-сервер для разных URL-адресов. Это полезно, поскольку PAC-файл позволяет ИТ-отделу реализовать балансировку нагрузки прокси-сервера путем сопоставления (хэширования) целевого URL-адреса (указанного параметром lpcwszUrl ) с определенным прокси-сервером в массиве прокси-серверов.
WinHttpGetProxyForUrl кэширует URL-адрес autoproxy и скрипт autoproxy, если автообнаружение указано в элементе dwFlags структуры pAutoProxyOptions . Дополнительные сведения см. в разделе Кэш autoproxy.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения] |
Целевая платформа | Windows |
Header | winhttp.h |
Библиотека | Winhttp.lib |
DLL | Winhttp.dll |