簡介
HINTERNET InternetOpenUrl
( HINTERNET hInternet ,
LPCTSTR lpszUrl ,
LPCTSTR lpszHeaders ,
DWORD dwHeadersLength ,
DWORD dwFlags ,
DWORD_PTR dwContext)
通過一個完整的FTP,
Gopher或HTTP網址打開一個資源。
參數
hInternet
當前的 Internet 會話句柄。句柄必須由前期的 InternetOpen 調用返回。
lpszUrl
一個空
字元結束的字元串變數的
指針,指定讀取的網址。只有以ftp:, gopher:, http:, 或者 https: 開頭的網址被支持。
lpszHeaders
一個空字元結束的字元串變數的指針,指定傳送到HTTP伺服器的頭信息。欲了解更多信息,請參閱
HttpSendRequest函數裡lpszHeaders參數的說明。
dwHeadersLength
dwFlags
此參數可為下列值之一。
數值 說明
INTERNET_FLAG_EXISTING_CONNECT
如果使用相同的必須屬性
創建會話,會嘗試利用現有的InternetConnect對象。這隻對FTP操作非常有用,因為FTP是唯一在同一會話中執行多種操作的協定。WinINet API 為每個由
InternetOpen產生的HINTERNET句柄緩衝一個單獨連結句柄。InternetOpenUrl使用此標誌的HTTP和FTP連線。
INTERNET_FLAG_HYPERLINK
當決定何時從網路
重載時,如果伺服器沒有返回 Expires time 和 LastModified,那么強制重載。
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
停用檢查從伺服器對必須的
主機名稱返回的SSL/PCT-based證書。 WinINet函式使用簡單的比較匹配主機名稱和
通配符的規則檢查證書。
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
停用檢查的SSL/PCT-based的證書的適當的有效日期。
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
禁用檢測這中特殊的
重定向。當使用此標誌, WinINet 透明允許從HTTPS到HTTP URL的重定向。
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
禁用檢測這中特殊的重定向。當使用此標誌, WinINet 透明的允許的HTTP到HTTPS URL的重定向。
INTERNET_FLAG_KEEP_CONNECTION
如果可能的話,為連線使用保活語義。這個標誌要求微軟網路( MSN ),
NTLM和其他類型的身份驗證。
INTERNET_FLAG_NEED_FILE
INTERNET_FLAG_NO_AUTH
不試圖自動驗證。
INTERNET_FLAG_NO_AUTO_REDIRECT
INTERNET_FLAG_NO_CACHE_WRITE
不添加返回實體到快取。
INTERNET_FLAG_NO_COOKIES
不會自動添加的Cookie頭到請求,並且不自動添加返回的
cookie到cookie資料庫。
INTERNET_FLAG_NO_UI
禁用Cookie的對話框。
INTERNET_FLAG_PASSIVE
使用被動FTP語義。InternetOpenUrl為FTP的檔案和目錄使用此標誌。
INTERNET_FLAG_PRAGMA_NOCACHE
即使代理中存在快取副本,也強制要求由源伺服器返回。
INTERNET_FLAG_RAW_DATA
檢索的
Gopher目錄信息時,傳回的數據作為GOPHER_FIND_DATA結構,如果檢索的FTP目錄信息時,作為一個
WIN32_FIND_DATA結構。如果此標誌沒有指定,或者請求通過CERN代理創建, InternetOpenUrl返回的HTML版本的目錄。
INTERNET_FLAG_RELOAD
從原伺服器強制下載所要求的檔案,對象,或目錄列表,而不是從
快取下載。
INTERNET_FLAG_RESYNCHRONIZE
重新載入的HTTP資源,如果資源在最後一次下載後已被修改。所有FTP和Gopher資源將被
重載。
INTERNET_FLAG_SECURE
使用安全傳輸語義。這次傳輸使用安全套
位元組層/專用通信技術(的SSL / PCT ),這隻有在
HTTP請求時有意義。
dwContext
一個指向一個應用程式定義的值,將隨著返回的句柄,一起傳遞給
回調函式。
返回值
如果已成功建立到FTP,
Gopher,或HTTP URL的連線,返回一個有效的句柄,如果連線失敗返回NULL。要檢索特定的錯誤訊息,請GetLastError 。要確定為什麼對伺服器的訪問被拒絕,請調用InternetGetLastResponseInfo。
備註
先調用InternetCanonicalizeUrl,如果正在使用的網址包含一個相對URL和一個空格分隔的基礎URL。
這是一個通用的函式,可用於使用任何
WinINet支持的協定檢索數據。這個函式在應用程式並不需要指定特定的協定,只需要相應的URL的數據時,特別有用。InternetOpenUrl函式解析URL字元串,建立連線到伺服器,並準備下載的指定URL的數據。該應用程式可以用InternetReadFile (對檔案)或InternetFindNextFile (對目錄)來檢索URL的數據。沒有必要在InternetOpenUrl 前調用InternetConnect。
InternetOpenUrl在少於
1024連線埠上禁用
Gopher,除了70——標準的Gopher連線埠和105——通常用於中央服務組織(民間組織)的名字搜尋。
在使用完InternetOpenUrl返回的HINTERNET句柄後,必須使用InternetCloseHandle函式關閉它。
注意 :當工作在異步模式(
InternetOpen的dwFlags參數指定INTERNET_FLAG_ASYNC)和dwContext參數是零 (INTERNET_NO_CALLBACK),使用InternetSetStatusCallback函式設定的
回調,將不被引用,但是,將仍然在異步模式執行回調。
要求
客戶端
需要 Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, 或者 Windows 95。
伺服器-
需要 Windows Server 2008, Windows Server 2003, Windows 2000 Server, 或 Windows NT Server 4.0。
版本:
需要 Internet Explorer 3.0 或更高版本。
頭
在 Wininet.h 中聲明。
庫
使用 Wininet.lib 。
DLL
需要 Wininet.dll 。
Unicode
執行InternetOpenUrlW(Unicode)和InternetOpenUrlA (
ANSI) 的。