Condividi tramite


Funzione InternetConnectA (wininet.h)

Apre una sessione FTP (File Transfer Protocol) o HTTP per un determinato sito.

Sintassi

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
);

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
INTERNET_DEFAULT_FTP_PORT
Usa la porta predefinita per i server FTP (porta 21).
INTERNET_DEFAULT_GOPHER_PORT
Usa la porta predefinita per i server Gopher (porta 70).
Nota Solo Windows XP e Windows Server 2003 R2 e versioni precedenti.
 
INTERNET_DEFAULT_HTTP_PORT
Usa la porta predefinita per i server HTTP (porta 80).
INTERNET_DEFAULT_HTTPS_PORT
Usa la porta predefinita per i server HTTPS (Secure Hypertext Transfer Protocol) (porta 443).
INTERNET_DEFAULT_SOCKS_PORT
Usa la porta predefinita per i server firewall SOCKS (porta 1080).
INTERNET_INVALID_PORT_NUMBER
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
INTERNET_SERVICE_FTP
Servizio FTP.
INTERNET_SERVICE_GOPHER
Servizio Gopher.
Nota Solo Windows XP e Windows Server 2003 R2 e versioni precedenti.
 
INTERNET_SERVICE_HTTP
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 WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni o i servizi server usano Microsoft Windows HTTP Services (WinHTTP).
 

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

Vedi anche

Abilitazione della funzionalità Internet

Funzioni WinINet