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 un nullstringa con terminazione che specifica il nome host di un server Internet. In alternativa, la stringa può contenere il numero IP del sito, in formato decimale punteggiato 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ò essere 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 un nullstringa con terminazione che specifica il nome dell'utente per l'accesso. Se questo parametro è NULL, la funzione usa un valore predefinito appropriato. Per il protocollo FTP, il valore predefinito è "anonimo".

[in] lpszPassword

Puntatore a un nullstringa con terminazione contenente la password da usare per l'accesso. Se sia lpszPassword che lpszUsername sono null, la funzione usa la password predefinita "anonima". 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 a cui accedere. Questo parametro può essere 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 fa sì che l'applicazione usi la semantica FTP passiva.

[in] dwContext

Puntatore a una variabile che contiene un valore definito dall'applicazione usato per identificare il contesto dell'applicazione per l'handle restituito nei callback.

Valore restituito

Restituisce un handle valido per la 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 il motivo per cui è stato negato l'accesso al servizio.

Osservazioni

Nella tabella seguente viene descritto 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 diNULL non NULL lpszUsername ""
NULL Stringa diNULL non ERRORE ERRORE
Stringa diNULL non Stringa diNULL non lpszUsername lpszPassword
 

Per i siti FTP, InternetConnect stabilisce effettivamente una connessione con il server; per altri, la connessione effettiva non viene stabilita fino a quando l'applicazione non richiede una transazione specifica.

Per garantire la massima efficienza, 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 a cui si accede in precedenza, tale handle di sessione è ancora disponibile.

Al termine dell'utilizzo dell'applicazione chiamante tramite l'handle di RESTITUITO da InternetConnect, deve essere chiuso utilizzando la funzione InternetCloseHandle.

Nota Quando viene inviata una richiesta in 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 sull'handle di connessione non verrà chiamata, Tuttavia, 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 di oggetti globali.

Nota WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni del server o i servizi, usare Servizi HTTP Di Microsoft Windows (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 indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wininet.h
libreria Wininet.lib
dll Wininet.dll

Vedere anche

Abilitazione della funzionalità Internet

funzioni WinINet