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

此參數可以是下列其中一個值。

意義
INTERNET_FLAG_EXISTING_CONNECT
如果現有的 InternetConnect 物件存在,則嘗試使用要求所需的相同屬性。 這隻適用於 FTP 作業,因為 FTP 是唯一在相同會話期間執行多個作業的通訊協定。 WinINet API 會針對 InternetOpen 所產生的每個 HINTERNET 句柄快取單一連線句柄。 InternetOpenUrl 會針對 HTTP 和 FTP 連線使用此旗標。
INTERNET_FLAG_HYPERLINK
在判斷是否要從網路重載專案時,強制重載沒有 「到期時間」,且沒有從伺服器傳回的 LastModified 時間。
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
針對要求中指定的主機名,停用從伺服器傳回的SSL/PCT型憑證檢查。 WinINet 函式會藉由比較相符的主機名和簡單的通配符規則,對憑證使用簡單的檢查。
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
停用 SSL/PCT 型憑證的檢查,以取得適當的有效日期。
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
停用這種特殊重新導向類型的偵測。 使用此旗標時,WinINet 會透明地允許從 HTTPS 重新導向至 HTTP URL。
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
停用這種特殊重新導向類型的偵測。 使用此旗標時,WinINet 會透明地允許從 HTTP 重新導向至 HTTPS URL。
INTERNET_FLAG_KEEP_CONNECTION
如果連線可用,請使用保持運作語意。 Microsoft Network (MSN) 、NTLM 和其他類型的驗證都需要此旗標。
INTERNET_FLAG_NEED_FILE
如果無法快取檔案,就會建立臨時檔。
INTERNET_FLAG_NO_AUTH
不會自動嘗試驗證。
INTERNET_FLAG_NO_AUTO_REDIRECT
不會自動處理 HttpSendRequest 中的重新導向。
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
強制源伺服器解析要求,即使 Proxy 上有快取的複本也一樣。
INTERNET_FLAG_RAW_DATA
擷取 FTP 目錄資訊時,以 WIN32_FIND_DATA 結構傳回數據。 如果未指定此旗標,或透過 CERN Proxy 進行呼叫, InternetOpenUrl 會傳回目錄的 HTML 版本。

Windows XP 和 Windows Server 2003 R2 和更早版本: 也會在擷取 Gopher 目錄資訊時,以 GOPHER_FIND_DATA 結構傳回數據。

INTERNET_FLAG_RELOAD
強制從源伺服器下載要求的檔案、對象或目錄清單,而不是從快取下載。
INTERNET_FLAG_RESYNCHRONIZE
如果資源自上次下載後已修改,則會重載 HTTP 資源。 所有 FTP 資源都會重載。

Windows XP 和 Windows Server 2003 R2 和更早版本: Gopher 資源也會重載。

INTERNET_FLAG_SECURE
使用安全交易語意。 這可轉譯為使用安全套接字層/私人通訊技術 (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 函式加以關閉。

注意在異步模式中工作時 (InternetOpendwFlags 參數會指定 INTERNET_FLAG_ASYNC) ,而 dwContext 參數為零, (INTERNET_NO_CALLBACK) ,會話句柄上以 InternetSetStatusCallback 設定的回呼函式將不會叫用,不過,呼叫仍會在異步模式中執行

就像 WinINet API 的其他所有層面一樣,無法在 DllMain 或全域物件的建構函式和解構函式內安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,它不應該從服務使用。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP 服務 (WinHTTP)
 

注意

wininet.h 標頭會將 InternetOpenUrl 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 wininet.h
程式庫 Wininet.lib
Dll Wininet.dll

另請參閱

處理統一資源定位器

WinINet 函式