Funzione InternetConnectW (wininet.h)
Apre una sessione FTP (File Transfer Protocol) o HTTP per un determinato sito.
Sintassi
HINTERNET InternetConnectW(
[in] HINTERNET hInternet,
[in] LPCWSTR lpszServerName,
[in] INTERNET_PORT nServerPort,
[in] LPCWSTR lpszUserName,
[in] LPCWSTR lpszPassword,
[in] DWORD dwService,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Parametri
[in] hInternet
Handle restituito da una chiamata precedente a InternetOpen.
[in] lpszServerName
Puntatore a una stringa con terminazione null che specifica il nome host di un server Internet. In alternativa, la stringa può contenere il numero IP del sito, in formato decimale ASCII,ad esempio 11.0.1.45.
[in] nServerPort
Porta TCP/IP (Transmission Control Protocol/Internet Protocol) nel server. Questi flag impostano solo la porta usata. Il servizio viene impostato dal valore di dwService. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Usa la porta predefinita per i server FTP (porta 21). |
|
Usa la porta predefinita per i server Gopher (porta 70). Nota Solo Windows XP e Windows Server 2003 R2 e versioni precedenti.
|
|
Usa la porta predefinita per i server HTTP (porta 80). |
|
Usa la porta predefinita per i server HTTPS (Secure Hypertext Transfer Protocol) (porta 443). |
|
Usa la porta predefinita per i server firewall SOCKS (porta 1080). |
|
Usa la porta predefinita per il servizio specificato da dwService. |
[in] lpszUserName
Puntatore a una stringa con terminazione null che specifica il nome dell'utente da accedere. Se questo parametro è NULL, la funzione usa un valore predefinito appropriato. Per il protocollo FTP, il valore predefinito è "anonimo".
[in] lpszPassword
Puntatore a una stringa con terminazione null contenente la password da usare per accedere. Se sia lpszPassword che lpszUsername sono NULL, la funzione usa la password "anonima" predefinita. Nel caso di FTP, la password predefinita è il nome di posta elettronica dell'utente. Se lpszPassword è NULL, ma lpszUsername non è NULL, la funzione usa una password vuota.
[in] dwService
Tipo di servizio da accedere. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Servizio FTP. |
|
Servizio Gopher. Nota Solo Windows XP e Windows Server 2003 R2 e versioni precedenti.
|
|
Servizio HTTP. |
[in] dwFlags
Opzioni specifiche del servizio usato. Se
dwService è INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE causa l'uso della semantica FTP passiva.
[in] dwContext
Puntatore a una variabile contenente un valore definito dall'applicazione utilizzato per identificare il contesto dell'applicazione per l'handle restituito nei callback.
Valore restituito
Restituisce un handle valido alla sessione se la connessione ha esito positivo o NULL in caso contrario. Per recuperare informazioni sull'errore estese, chiamare GetLastError. Un'applicazione può anche usare InternetGetLastResponseInfo per determinare perché l'accesso al servizio è stato negato.
Commenti
La tabella seguente descrive il comportamento per le quattro possibili impostazioni di lpszUsername e lpszPassword.
lpszUsername | lpszPassword | Nome utente inviato al server FTP | Password inviata al server FTP |
---|---|---|---|
NULL | NULL | "anonimo" | Nome di posta elettronica dell'utente |
Stringa non NULL | NULL | lpszUsername | "" |
NULL | Stringa non NULL | ERRORE | ERRORE |
Stringa non NULL | Stringa non NULL | lpszUsername | lpszPassword |
Per i siti FTP, InternetConnect stabilisce effettivamente una connessione con il server; per altri utenti, la connessione effettiva non viene stabilita finché l'applicazione richiede una transazione specifica.
Per un'efficienza massima, le applicazioni che usano i protocolli HTTP devono provare a ridurre al minimo le chiamate a InternetConnect ed evitare di chiamare questa funzione per ogni transazione richiesta dall'utente. Un modo per eseguire questa operazione consiste nel mantenere una piccola cache di handle restituiti da InternetConnect; quando l'utente effettua una richiesta a un server con accesso precedente, tale handle di sessione è ancora disponibile.
Al termine dell'applicazione chiamante, l'handle HINTERNET restituito da InternetConnect deve essere chiuso usando la funzione InternetCloseHandle .
Nota Quando viene inviata una modalità asincrona (il parametro dwFlags di InternetOpen specifica INTERNET_FLAG_ASYNC) e il parametro dwContext è zero (INTERNET_NO_CALLBACK), la funzione di callback impostata con InternetSetStatusCallback nell'handle di connessione non verrà tuttavia chiamata, ma la chiamata verrà comunque eseguita in modalità asincrona.
Esempi di utilizzo di InternetConnect sono disponibili negli argomenti seguenti.
Come tutti gli altri aspetti dell'API WinINet, questa funzione non può essere chiamata in modo sicuro dall'interno di DllMain o dai costruttori e distruttori degli oggetti globali.
Nota
L'intestazione wininet.h definisce InternetConnect come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wininet.h |
Libreria | Wininet.lib |
DLL | Wininet.dll |