InternetOpenUrlW 函式 (wininet.h)
開啟由完整 FTP 或 HTTP URL 指定的資源。
語法
HINTERNET InternetOpenUrlW(
[in] HINTERNET hInternet,
[in] LPCWSTR lpszUrl,
[in] LPCWSTR 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 |
|
判斷是否要從網路重載專案時,如果沒有任何 Expires 時間和從伺服器傳回的 LastModified 時間,則強制重載。 |
|
針對要求中指定的主機名,停用從伺服器傳回的SSL/PCT型憑證檢查。 WinINet 函式會比較相符的主機名和簡單的通配符規則,對憑證使用簡單的檢查。 |
|
停用 SSL/PCT 型憑證的檢查,以取得適當的有效日期。 |
|
停用這種特殊重新導向類型的偵測。 使用此旗標時,WinINet 會以透明方式允許從 HTTPS 重新導向至 HTTP URL。 |
|
停用此特殊重新導向類型的偵測。 使用此旗標時,WinINet 會以透明方式允許從 HTTP 重新導向至 HTTPS URL。 |
|
如果連線可用,請使用keep-alive語意。 Microsoft網路(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(適用於檔案)或 InternetFindNextFile (適用於目錄)來擷取 URL 數據。 在 InternetOpenUrl之前,不需要呼叫 InternetConnect。
Windows XP 和 Windows Server 2003 R2 和更早版本:InternetOpenUrl 在小於 1024 的埠上停用 Gopher,但埠 70 除外,標準 Gopher 埠和埠 105 通常用於中央服務組織 (CSO) 名稱搜尋。
呼叫端應用程式使用
注意 在異步模式中運作時(dwFlags 參數 InternetOpen 指定 INTERNET_FLAG_ASYNC),且 dwContext 參數為零(INTERNET_NO_CALLBACK),則不會叫用會話句柄上 InternetSetStatusCallback 的回呼函式,不過,呼叫仍會在異步模式中執行
如同 WinINet API 的其他所有層面,無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意
wininet.h 標頭會將 InternetOpenUrl 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | wininet.h |
連結庫 | Wininet.lib |
DLL | Wininet.dll |