WinHttpGetProxyForUrl 函式 (winHTTP.h)
WinHttpGetProxyForUrl 函式會擷取指定 URL 的 Proxy 數據。
語法
WINHTTPAPI BOOL WinHttpGetProxyForUrl(
[in] HINTERNET hSession,
[in] LPCWSTR lpcwszUrl,
[in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
[out] WINHTTP_PROXY_INFO *pProxyInfo
);
參數
[in] hSession
WinHttpOpen 函式所傳回的 WinHTTP 會話句柄。
[in] lpcwszUrl
Null 終止 Unicode 字串的指標,其中包含應用程式正在準備傳送之 HTTP 要求的 URL。
[in] pAutoProxyOptions
WINHTTP_AUTOPROXY_OPTIONS 結構的指標,指定要使用的自動 Proxy 選項。
[out] pProxyInfo
接收 Proxy 設定 之WINHTTP_PROXY_INFO 結構的指標。 接著,此結構會使用 WINHTTP_OPTION_PROXY 選項套用至要求句柄。 如果 lpszProxy 和 lpszProxyBypass 字串是使用 GlobalFree 函式的非 NULL) ,請釋放此結構中所包含的 lpszProxy 和 lpszProxyBypass 字符串 (。
傳回值
如果函式成功,函式會傳回 TRUE。
如果函式失敗,則會傳回 FALSE。 如需擴充錯誤數據,請呼叫 GetLastError。
可能的錯誤碼包括下拉式。
錯誤碼 | 描述 |
---|---|
|
當找不到指定 URL 的 Proxy 時, WinHttpGetProxyForUrl 所傳回。 |
|
在 Proxy 自動設定 (PAC) 檔案中執行腳本程式代碼時發生錯誤。 |
|
針對此作業提供的句柄類型不正確。 |
|
發生內部錯誤。 |
|
URL 無效。 |
|
登入嘗試失敗。 遇到此錯誤時,請使用 WinHttpCloseHandle 關閉要求句柄。 必須先建立新的要求句柄,再重試原本產生此錯誤的函式。 |
|
作業已取消,通常是因為要求在作業完成之前關閉的句柄。 |
|
無法下載 PAC 檔案。 例如,PAC URL 所參考的伺服器可能尚未連線,或伺服器傳回 404 NOT FOUND 回應。 |
|
PAC 檔案的 URL 指定了 “HTTP:” 或 “https:” 以外的配置。 |
|
記憶體不足,無法完成要求的作業。 (Windows 錯誤碼) |
備註
此函式會實作 Web Proxy 自動探索 (WPAD) 通訊協定,以自動設定 HTTP 要求的 Proxy 設定。 WPAD 通訊協定會下載 Proxy 自動設定 (PAC) 檔案,這是識別要用於指定目標 URL 之 Proxy 伺服器的腳本。 PAC 檔案通常是由公司網路環境內的IT部門所部署。 您可以明確指定 PAC 檔案的 URL,也可以指示 WinHttpGetProxyForUrl 自動探索局域網路上 PAC 檔案的位置。
WinHttpGetProxyForUrl 僅支援以 ECMAScript 為基礎的 PAC 檔案。
WinHttpGetProxyForUrl 必須以每個 URL 為基礎呼叫,因為 PAC 檔案可以針對不同的 URL 傳回不同的 Proxy 伺服器。 這很有用,因為 PAC 檔案可讓 IT 部門透過將 (哈希) lpcwszUrl) 參數指定的目標 URL (對應至 Proxy 伺服器陣列中的特定 Proxy,藉此實作 Proxy 伺服器負載平衡。
WinHttpGetProxyForUrl 會在 pAutoProxyOptions 結構的 dwFlags 成員中指定自動探索時快取 autoproxy URL 和 autoproxy 腳本。 如需詳細資訊,請參閱 Autoproxy 快取。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP、Windows 2000 Professional 與 SP3 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003、Windows 2000 Server 與 SP3 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winhttp.h |
程式庫 | Winhttp.lib |
Dll | Winhttp.dll |