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 的值所設定。 此參數可以是下列其中一個值。

意義
INTERNET_DEFAULT_FTP_PORT
使用 FTP 伺服器的預設埠, (埠 21) 。
INTERNET_DEFAULT_GOPHER_PORT
使用 Gopher 伺服器的預設埠, (埠 70) 。
注意 僅限 Windows XP 和 Windows Server 2003 R2 和更早版本。
 
INTERNET_DEFAULT_HTTP_PORT
使用 HTTP 伺服器的預設埠, (埠 80) 。
INTERNET_DEFAULT_HTTPS_PORT
使用安全超文本傳輸通訊協議的預設埠, (HTTPS) 伺服器 (埠 443) 。
INTERNET_DEFAULT_SOCKS_PORT
使用SOCKS防火牆伺服器的預設埠, (埠1080) 。
INTERNET_INVALID_PORT_NUMBER
使用 dwService 所指定服務的預設埠。

[in] lpszUserName

Null 終止字串的指標,指定要登入的用戶名稱。 如果此參數為 NULL,函式會使用適當的預設值。 針對 FTP 通訊協議,預設值為 “anonymous”。

[in] lpszPassword

Null 終止字串的指標,其中包含要用來登入的密碼。 如果 lpszPasswordlpszUsername 都是 NULL,則函式會使用預設的 “anonymous” 密碼。 在 FTP 的情況下,預設密碼是使用者的電子郵件名稱。 如果 lpszPasswordNULL,但 lpszUsername 不是 NULL,則函式會使用空白密碼。

[in] dwService

要存取的服務類型。 此參數可以是下列其中一個值。

意義
INTERNET_SERVICE_FTP
FTP 服務。
INTERNET_SERVICE_GOPHER
Gopher 服務。
注意 僅限 Windows XP 和 Windows Server 2003 R2 和更早版本。
 
INTERNET_SERVICE_HTTP
HTTP 服務。

[in] dwFlags

所使用服務的特定選項。 如果
dwServiceINTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE 會導致應用程式使用被動 FTP 語意。

[in] dwContext

變數的指標,其中包含應用程式定義的值,用來識別回呼中傳回句柄的應用程式內容。

傳回值

如果連接成功,則傳回會話的有效句柄,否則傳回 NULL 。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError。 應用程式也可以使用 InternetGetLastResponseInfo 來判斷為何拒絕存取服務。

備註

下表描述 lpszUsernamelpszPassword 四個可能設定的行為。

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 函式加以關閉。

注意當傳送要求 (InternetOpendwFlags 參數指定 INTERNET_FLAG_ASYNC) ,而 dwContext 參數為零 (INTERNET_NO_CALLBACK) ,則不會呼叫連線句柄上以 InternetSetStatusCallback 設定的回呼函式,不過,呼叫仍會在異步模式中執行。

您可以在下列主題中找到 InternetConnect 使用方式的範例。

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

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

注意

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

規格需求

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

另請參閱

啟用因特網功能

WinINet 函式