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 通訊協定,預設值為 「匿名」。
[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 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | Windows |
標頭 | wininet.h |
程式庫 | Wininet.lib |
DLL | Wininet.dll |