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 的情況下,預設密碼是使用者的電子郵件名稱。 如果
[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 字串 | 錯誤 | 錯誤 |
非NULL 字串 | 非NULL 字串 | lpszUsername | lpszPassword |
對於 FTP 網站,InternetConnect 實際上會建立與伺服器的連線;對於其他人,在應用程式要求特定交易之前,不會建立實際的連線。
為了達到最大效率,使用 HTTP 通訊協定的應用程式應該嘗試將 InternetConnect 的呼叫降到最低,並避免針對使用者要求的每個交易呼叫此函式。 若要達成此目的,其中一個方法是保留從 internetConnect 傳回的小型句柄快取;當使用者向先前存取的伺服器提出要求時,該會話句柄仍可供使用。
呼叫端應用程式使用 InternetConnect所傳回 HINTERNET 句柄之後,必須使用 InternetCloseHandle 函式關閉。
注意 傳送要求異步模式時(InternetOpen 指定 INTERNET_FLAG_ASYNC的 dwFlags 參數),而 dwContext 參數為零(INTERNET_NO_CALLBACK),則不會呼叫連線句柄上的 InternetSetStatusCallback 的回呼函式,不過,呼叫仍會以異步模式執行。
您可以在下列主題中找到 InternetConnect 用法的範例。
如同 WinINet API 的其他所有層面,無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意
wininet.h 標頭會將 InternetConnect 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | wininet.h |
連結庫 | Wininet.lib |
DLL | Wininet.dll |