InternetConnectA 函式 (wininet.h)
開啟指定月臺的 FTP) 或 HTTP 工作階段 (檔案傳輸通訊協定。
語法
HINTERNET InternetConnectA(
[in] HINTERNET hInternet,
[in] LPCSTR lpszServerName,
[in] INTERNET_PORT nServerPort,
[in] LPCSTR lpszUserName,
[in] LPCSTR lpszPassword,
[in] DWORD dwService,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
參數
[in] hInternet
前一次呼叫 InternetOpen 所傳回的句柄。
[in] lpszServerName
指定因特網伺服器主機名之 Null 終止字串的指標。 或者,字串可以包含網站的IP編號,以ASCII虛線十進位格式 (例如11.0.1.45) 。
[in] nServerPort
伺服器上的傳輸控制通訊協定/因特網通訊協定 (TCP/IP) 埠。 這些旗標只會設定使用的埠。 服務是由 dwService 的值所設定。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
使用 FTP 伺服器的預設埠, (埠 21) 。 |
|
使用 Gopher 伺服器的預設埠, (埠 70) 。 注意 僅限 Windows XP 和 Windows Server 2003 R2 和更早版本。
|
|
使用 HTTP 伺服器的預設埠, (埠 80) 。 |
|
使用安全超文本傳輸通訊協議的預設埠, (HTTPS) 伺服器 (埠 443) 。 |
|
使用SOCKS防火牆伺服器的預設埠, (埠1080) 。 |
|
使用 dwService 所指定服務的預設埠。 |
[in] lpszUserName
Null 終止字串的指標,指定要登入的用戶名稱。 如果此參數為 NULL,函式會使用適當的預設值。 針對 FTP 通訊協議,預設值為 “anonymous”。
[in] lpszPassword
Null 終止字串的指標,其中包含要用來登入的密碼。 如果 lpszPassword 和 lpszUsername 都是 NULL,則函式會使用預設的 “anonymous” 密碼。 在 FTP 的情況下,預設密碼是使用者的電子郵件名稱。 如果 lpszPassword 為 NULL,但 lpszUsername 不是 NULL,則函式會使用空白密碼。
[in] dwService
要存取的服務類型。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
FTP 服務。 |
|
Gopher 服務。 注意 僅限 Windows XP 和 Windows Server 2003 R2 和更早版本。
|
|
HTTP 服務。 |
[in] dwFlags
所使用服務的特定選項。 如果
dwService 是 INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE 會導致應用程式使用被動 FTP 語意。
[in] dwContext
變數的指標,其中包含應用程式定義的值,用來識別回呼中傳回句柄的應用程式內容。
傳回值
如果連接成功,則傳回會話的有效句柄,否則傳回 NULL 。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError。 應用程式也可以使用 InternetGetLastResponseInfo 來判斷為何拒絕存取服務。
備註
下表描述 lpszUsername 和 lpszPassword 四個可能設定的行為。
lpszUsername | lpszPassword | 傳送至 FTP 伺服器的用戶名稱 | 傳送至 FTP 伺服器的密碼 |
---|---|---|---|
NULL | NULL | “anonymous” | 用戶的電子郵件名稱 |
非 NULL 字串 | NULL | lpszUsername | "" |
NULL | 非 NULL 字串 | ERROR | ERROR |
非 NULL 字串 | 非 NULL 字串 | lpszUsername | lpszPassword |
對於 FTP 網站, InternetConnect 實際上會建立與伺服器的連線;對於其他人,在應用程式要求特定交易之前,不會建立實際連線。
為了達到最大效率,使用 HTTP 通訊協定的應用程式應該嘗試盡可能減少 對 InternetConnect 的呼叫,並避免針對使用者要求的每個交易呼叫此函式。 完成此作業的其中一種方式是保留從 InternetConnect 傳回的小型句柄快取;當使用者向先前存取的伺服器提出要求時,該會話句柄仍可供使用。
呼叫端應用程式使用 InternetConnect 所傳回的 HINTERNET 句柄完成之後,必須使用 InternetCloseHandle 函式加以關閉。
注意當傳送要求 (InternetOpen 的 dwFlags 參數指定 INTERNET_FLAG_ASYNC) ,而 dwContext 參數為零 (INTERNET_NO_CALLBACK) ,則不會呼叫連線句柄上以 InternetSetStatusCallback 設定的回呼函式,不過,呼叫仍會在異步模式中執行。
您可以在下列主題中找到 InternetConnect 使用方式的範例。
就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意
wininet.h 標頭會將 InternetConnect 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wininet.h |
程式庫 | Wininet.lib |
Dll | Wininet.dll |