Condividi tramite


Funzione HttpOpenRequestA (wininet.h)

Crea un handle di richiesta HTTP.

Sintassi

HINTERNET HttpOpenRequestA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszVerb,
  [in] LPCSTR    lpszObjectName,
  [in] LPCSTR    lpszVersion,
  [in] LPCSTR    lpszReferrer,
  [in] LPCSTR    *lplpszAcceptTypes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parametri

[in] hConnect

Handle per una sessione HTTP restituita da InternetConnect.

[in] lpszVerb

Puntatore a un nullstringa con terminazione contenente il verbo HTTP da usare nella richiesta. Se questo parametro è NULL, la funzione usa GET come verbo HTTP.

[in] lpszObjectName

Puntatore a un nullstringa con terminazione contenente il nome dell'oggetto di destinazione del verbo HTTP specificato. Si tratta in genere di un nome di file, di un modulo eseguibile o di un identificatore di ricerca.

[in] lpszVersion

Puntatore a un nullstringa con terminazione contenente la versione HTTP da usare nella richiesta. Le impostazioni in Internet Explorer sostituiranno il valore specificato in questo parametro.

Se questo parametro è NULL, la funzione usa una versione HTTP 1.1 o 1.0, a seconda del valore delle impostazioni di Internet Explorer.

Valore Significato
HTTP/1.0
HTTP versione 1.0
HTTP/1.1
HTTP versione 1.1

[in] lpszReferrer

Puntatore a un nullstringa con terminazione che specifica l'URL del documento da cui è stato ottenuto l'URL nella richiesta (lpszObjectName). Se questo parametro è NULL, non viene specificato alcun referrer.

[in] lplpszAcceptTypes

Puntatore a un nullmatrice di stringhe con terminazione che indica i tipi di supporti accettati dal client. Ecco un esempio.

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

Se non si termina correttamente la matrice con un puntatore NULL, si verificherà un arresto anomalo.

Se questo parametro è NULL, non vengono accettati tipi dal client. I server in genere interpretano la mancanza di tipi di accettazione per indicare che il client accetta solo documenti di tipo "text/*", ovvero solo documenti di testo, senza immagini o altri file binari.

[in] dwFlags

Opzioni Internet. Questo parametro può essere uno dei valori seguenti.

Valore Significato
INTERNET_FLAG_CACHE_IF_NET_FAIL
Restituisce la risorsa dalla cache se la richiesta di rete per la risorsa non riesce a causa di un ERROR_INTERNET_CONNECTION_RESET (la connessione con il server è stata reimpostata) o ERROR_INTERNET_CANNOT_CONNECT (tentativo di connessione al server non riuscito).
INTERNET_FLAG_HYPERLINK
Forza un ricaricamento se non è presente un'ora di scadenza e non viene restituito alcun tempo LastModified dal server per determinare se ricaricare l'elemento dalla rete.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Disabilita il controllo dei certificati basati su SSL/PCT restituiti dal server rispetto al nome host specificato nella richiesta. Le funzioni WinINet usano un controllo semplice rispetto ai certificati confrontando i nomi host corrispondenti e le semplici regole di caratteri jolly.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Disabilita il controllo dei certificati basati su SSL/PCT per le date di validità appropriate.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Disabilita il rilevamento di questo tipo speciale di reindirizzamento. Quando viene usato questo flag, le funzioni WinINet consentono in modo trasparente i reindirizzamenti da HTTPS agli URL HTTP.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Disabilita il rilevamento di questo tipo speciale di reindirizzamento. Quando viene usato questo flag, le funzioni WinINet consentono in modo trasparente i reindirizzamenti da HTTP a URL HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Usa la semantica keep-alive, se disponibile, per la connessione. Questo flag è obbligatorio per Microsoft Network (MSN), NT LAN Manager (NTLM) e altri tipi di autenticazione.
INTERNET_FLAG_NEED_FILE
Determina la creazione di un file temporaneo se il file non può essere memorizzato nella cache.
INTERNET_FLAG_NO_AUTH
Non tenta l'autenticazione automaticamente.
INTERNET_FLAG_NO_AUTO_REDIRECT
Non gestisce automaticamente il reindirizzamento in HttpSendRequest.
INTERNET_FLAG_NO_CACHE_WRITE
Non aggiunge l'entità restituita alla cache.
INTERNET_FLAG_NO_COOKIES
Non aggiunge automaticamente intestazioni di cookie alle richieste e non aggiunge automaticamente i cookie restituiti al database dei cookie.
INTERNET_FLAG_NO_UI
Disabilita la finestra di dialogo cookie.
INTERNET_FLAG_PRAGMA_NOCACHE
Forza la richiesta a essere risolta dal server di origine, anche se esiste una copia memorizzata nella cache nel proxy.
INTERNET_FLAG_RELOAD
Forza un download del file, dell'oggetto o dell'elenco di directory richiesto dal server di origine, non dalla cache.
INTERNET_FLAG_RESYNCHRONIZE
Ricarica le risorse HTTP se la risorsa è stata modificata dall'ultima volta che è stata scaricata. Tutte le risorse FTP vengono ricaricate.

anche le risorse di Windows XP e Windows Server 2003 R2 e versioni precedenti: vengono ricaricate anche le risorse di Gopher .

INTERNET_FLAG_SECURE
Usa la semantica delle transazioni sicura. Ciò si traduce nell'uso di Secure Sockets Layer/Private Communications Technology (SSL/PCT) ed è significativo solo nelle richieste HTTP.

[in] dwContext

Puntatore a una variabile contenente il valore definito dall'applicazione che associa questa operazione a tutti i dati dell'applicazione.

Valore restituito

Restituisce un handle di richiesta HTTP se ha esito positivo oppure null in caso contrario. Per recuperare informazioni sull'errore estese, chiamare GetLastError.

Osservazioni

La funzione HttpOpenRequest crea un nuovo handle di richiesta HTTP e archivia i parametri specificati in tale handle. Un handle di richiesta HTTP contiene una richiesta da inviare a un server HTTP e contiene tutte le intestazioni RFC822/MIME/HTTP da inviare come parte della richiesta.

Se viene specificato un verbo diverso da "GET" o "POST", HttpOpenRequest imposta automaticamente INTERNET_FLAG_NO_CACHE_WRITE e INTERNET_FLAG_RELOAD per la richiesta.

Con Microsoft Internet Explorer 5 e versioni successive, se lpszVerb è impostato su "HEAD", l'intestazione Content-Length viene ignorata nelle risposte dai server HTTP/1.1.

In Windows 7, Windows Server 2008 R2 e versioni successive, il parametro lpszVersion viene sostituito dalle impostazioni di Internet Explorer. Il EnableHttp1_1 è un valore del Registro di sistema in HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE controllato da Opzioni Internet impostate in Internet Explorer per il sistema. Il valore predefinito EnableHttp1_1 è 1. La funzione HttpOpenRequest aggiorna qualsiasi versione HTTP precedente a 1.1 a HTTP versione 1.1 se EnableHttp1_1 è impostata su 1.

Al termine dell'utilizzo dell'applicazione chiamante tramite l'handle di HTTPOpenRequest restituito dall'handle INTERNETCloseHandle, è necessario chiuderlo usando 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 richiesta non verrà tuttavia richiamata. la chiamata verrà comunque eseguita in modalità asincrona.

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 HttpOpenRequest 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

sessioni HTTP

funzioni WinINet