InternetOpenUrlA 函式 (wininet.h)
開啟由完整 FTP 或 HTTP URL 指定的資源。
語法
HINTERNET InternetOpenUrlA(
[in] HINTERNET hInternet,
[in] LPCSTR lpszUrl,
[in] LPCSTR lpszHeaders,
[in] DWORD dwHeadersLength,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
參數
[in] hInternet
目前因特網會話的句柄。 前一次呼叫 InternetOpen 時,必須傳回句柄。
[in] lpszUrl
Null 終止字串變數的指標,指定要開始讀取的 URL。 僅支援以 ftp:、HTTP:或 HTTPs 開頭的 URL。
[in] lpszHeaders
Null 終止字串的指標,指定要傳送至 HTTP 伺服器的標頭。 如需詳細資訊,請參閱 HttpSendRequest 函式中的 lpszHeaders 參數描述。
[in] dwHeadersLength
TCHAR 中其他標頭的大小。 如果此參數為 -1L 且 lpszHeaders 不是 NULL, 則會假設 lpszHeaders 為零終止 (ASCIIZ) ,並計算長度。
[in] dwFlags
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
如果現有的 InternetConnect 物件存在,則嘗試使用要求所需的相同屬性。 這隻適用於 FTP 作業,因為 FTP 是唯一在相同會話期間執行多個作業的通訊協定。 WinINet API 會針對 InternetOpen 所產生的每個 HINTERNET 句柄快取單一連線句柄。 InternetOpenUrl 會針對 HTTP 和 FTP 連線使用此旗標。 |
|
在判斷是否要從網路重載專案時,強制重載沒有 「到期時間」,且沒有從伺服器傳回的 LastModified 時間。 |
|
針對要求中指定的主機名,停用從伺服器傳回的SSL/PCT型憑證檢查。 WinINet 函式會藉由比較相符的主機名和簡單的通配符規則,對憑證使用簡單的檢查。 |
|
停用 SSL/PCT 型憑證的檢查,以取得適當的有效日期。 |
|
停用這種特殊重新導向類型的偵測。 使用此旗標時,WinINet 會透明地允許從 HTTPS 重新導向至 HTTP URL。 |
|
停用這種特殊重新導向類型的偵測。 使用此旗標時,WinINet 會透明地允許從 HTTP 重新導向至 HTTPS URL。 |
|
如果連線可用,請使用保持運作語意。 Microsoft Network (MSN) 、NTLM 和其他類型的驗證都需要此旗標。 |
|
如果無法快取檔案,就會建立臨時檔。 |
|
不會自動嘗試驗證。 |
|
不會自動處理 HttpSendRequest 中的重新導向。 |
|
不會將傳回的實體新增至快取。 |
|
不會自動將 Cookie 標頭新增至要求,也不會自動將傳回的 Cookie 新增至 Cookie 資料庫。 |
|
停用 Cookie 對話框。 |
|
使用被動 FTP 語意。 InternetOpenUrl 會針對 FTP 檔案和目錄使用此旗標。 |
|
強制源伺服器解析要求,即使 Proxy 上有快取的複本也一樣。 |
|
擷取 FTP 目錄資訊時,以 WIN32_FIND_DATA 結構傳回數據。 如果未指定此旗標,或透過 CERN Proxy 進行呼叫, InternetOpenUrl 會傳回目錄的 HTML 版本。
Windows XP 和 Windows Server 2003 R2 和更早版本: 也會在擷取 Gopher 目錄資訊時,以 GOPHER_FIND_DATA 結構傳回數據。 |
|
強制從源伺服器下載要求的檔案、對象或目錄清單,而不是從快取下載。 |
|
如果資源自上次下載後已修改,則會重載 HTTP 資源。 所有 FTP 資源都會重載。
Windows XP 和 Windows Server 2003 R2 和更早版本: Gopher 資源也會重載。 |
|
使用安全交易語意。 這可轉譯為使用安全套接字層/私人通訊技術 (SSL/PCT) ,而且只在 HTTP 要求中有意義。 |
[in] dwContext
變數的指標,指定傳遞給任何回呼函式的應用程式定義值以及傳回的句柄。
傳回值
如果成功建立連線,則傳回 URL 的有效句柄,如果連線失敗,則傳回 NULL 。 若要擷取特定錯誤訊息,請呼叫 GetLastError。 若要判斷為何拒絕存取服務,請呼叫 InternetGetLastResponseInfo。
備註
如果使用的 URL 包含相對 URL 和以空格分隔的基底 URL,請先呼叫 InternetCanonicalizeUrl 。
這是一般函式,應用程式可用來透過 WinINet 支援的任何通訊協議來擷取數據。 當應用程式不需要存取通訊協定的特定數據,但只需要對應至 URL 的數據時,此函式特別有用。 InternetOpenUrl 函式會剖析 URL 字串、建立與伺服器的連線,並準備下載 URL 所識別的數據。 應用程式接著可以使用 InternetReadFile (來擷取 URL 資料的目錄) ) 或 InternetFindNextFile (。 在 InternetOpenUrl 之前,不需要呼叫 InternetConnect。
Windows XP 和 Windows Server 2003 R2 和更早版本: InternetOpenUrl 會在小於 1024 的埠上停用 Gopher,但埠 70—標準 Gopher 埠和埠 105,通常用於中央服務組織 (CSO) 名稱搜尋。
呼叫應用程式使用 InternetOpenUrl 所傳回的 HINTERNET 句柄完成之後,必須使用 InternetCloseHandle 函式加以關閉。
注意在異步模式中工作時 (InternetOpen 的 dwFlags 參數會指定 INTERNET_FLAG_ASYNC) ,而 dwContext 參數為零, (INTERNET_NO_CALLBACK) ,會話句柄上以 InternetSetStatusCallback 設定的回呼函式將不會叫用,不過,呼叫仍會在異步模式中執行
就像 WinINet API 的其他所有層面一樣,無法在 DllMain 或全域物件的建構函式和解構函式內安全地呼叫此函式。
注意
wininet.h 標頭會將 InternetOpenUrl 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wininet.h |
程式庫 | Wininet.lib |
Dll | Wininet.dll |