Condividi tramite


Classe CHttpConnection

Gestisce la connessione a un server HTTP.

Sintassi

class CHttpConnection : public CInternetConnection

Membri

Costruttori pubblici

Nome Descrizione
CHttpConnection::CHttpConnection Crea un oggetto CHttpConnection.

Metodi pubblici

Nome Descrizione
CHttpConnection::OpenRequest Apre una richiesta HTTP.

Osservazioni:

HTTP è uno dei tre protocolli server Internet implementati dalle classi WinInet MFC.

La classe CHttpConnection contiene un costruttore e una funzione membro, OpenRequest, che gestisce le connessioni a un server con un protocollo HTTP.

Per comunicare con un server HTTP, è prima necessario creare un'istanza di CInternetSession e quindi creare un oggetto CHttpConnection . Non si crea mai direttamente un CHttpConnection oggetto, invece, chiamare CInternetSession::GetHttpConnection, che crea l'oggetto CHttpConnection e restituisce un puntatore.

Per altre informazioni sul CHttpConnection funzionamento delle altre classi Internet MFC, vedere l'articolo Programmazione Internet con WinInet. Per altre informazioni sulla connessione ai server usando gli altri due protocolli Internet supportati, gopher e FTP, vedere le classi CGopherConnection e CFtpConnection.

Gerarchia di ereditarietà

CObject

CInternetConnection

CHttpConnection

Requisiti

Intestazione: afxinet.h

CHttpConnection::CHttpConnection

Questa funzione membro viene chiamata per costruire un CHttpConnection oggetto .

CHttpConnection(
    CInternetSession* pSession,
    HINTERNET hConnected,
    LPCTSTR pstrServer,
    DWORD_PTR dwContext);

CHttpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 1);

CHttpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    DWORD dwFlags,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 1);

Parametri

pSession
Puntatore a un oggetto CInternetSession .

hConnected
Handle per una connessione Internet.

pstrServer
Puntatore a una stringa contenente il nome del server.

dwContext
Identificatore di contesto per l'oggetto CInternetConnection . Per altre informazioni su dwContext, vedere la sezione Osservazioni .

nPort
Numero che identifica la porta Internet per questa connessione.

pstrUserName
Puntatore a una stringa con terminazione Null che specifica il nome dell'utente da accedere. Se NULL, il valore predefinito è anonimo.

pstrPassword
Puntatore a una stringa con terminazione Null che specifica la password da usare per l'accesso. Se pstrPassword e pstrUserName sono NULL, la password anonima predefinita è il nome di posta elettronica dell'utente. Se pstrPassword è NULL o una stringa vuota, ma pstrUserName non è NULL, viene usata una password vuota. La tabella seguente descrive il comportamento per le quattro possibili impostazioni di pstrUserName e pstrPassword:

pstrUserName pstrPassword Nome utente inviato al server FTP Password inviata al server FTP
NULL o " " NULL o " " "anonimo" Nome di posta elettronica dell'utente
Stringa non NULL NULL o " " pstrUserName " "
NULL Stringa non NULL ERROR ERROR
Stringa non NULL Stringa non NULL pstrUserName pstrPassword

dwFlags
Qualsiasi combinazione dei INTERNET_FLAG_* flag. Per una descrizione dei valori dwFlags, vedere la tabella nella sezione Osservazioni di CHttpConnection::OpenRequest.

Osservazioni:

Non si crea mai direttamente un oggetto CHttpConnection . È invece possibile creare un oggetto chiamando CInternetSession::GetHttpConnection.

CHttpConnection::OpenRequest

Chiamare la seguente funzione membro per aprire una connessione HTTP.

CHttpFile* OpenRequest(
    LPCTSTR pstrVerb,
    LPCTSTR pstrObjectName,
    LPCTSTR pstrReferer = NULL,
    DWORD_PTR dwContext = 1,
    LPCTSTR* ppstrAcceptTypes = NULL,
    LPCTSTR pstrVersion = NULL,
    DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);

CHttpFile* OpenRequest(
    int nVerb,
    LPCTSTR pstrObjectName,
    LPCTSTR pstrReferer = NULL,
    DWORD_PTR dwContext = 1,
    LPCTSTR* ppstrAcceptTypes = NULL,
    LPCTSTR pstrVersion = NULL,
    DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);

Parametri

pstrVerb
Puntatore a una stringa contenente il metodo da utilizzare nella richiesta. Se NULL, viene usato "GET".

pstrObjectName
Puntatore a una stringa contenente l'oggetto di destinazione del metodo specificato. Questa stringa è in genere un nome file, un modulo eseguibile o un identificatore di ricerca.

pstrReferer
Puntatore a una stringa che specifica l'indirizzo (URL) del documento da cui è stato ottenuto l'URL nella richiesta (pstrObjectName). Se NULL, non viene specificata alcuna intestazione HTTP.

dwContext
Identificatore di contesto per l'operazione OpenRequest. Per altre informazioni su dwContext, vedere la sezione Osservazioni.

ppstrAcceptTypes
Puntatore a una matrice con terminazione Null di puntatori LPCTSTR alle stringhe che indicano i tipi di contenuto accettati dal client. Se ppstrAcceptTypes è NULL, i server interpretano che il client accetta solo documenti di tipo "text/*", ovvero solo documenti di testo e non immagini o altri file binari. Il tipo di contenuto è equivalente alla variabile CONTENT_TYPE di CGI, che identifica il tipo di dati per le query con informazioni associate, quali HTTP POST e PUT.

pstrVersion
Puntatore a una stringa che definisce la versione di HTTP. Se NULL, viene usato "HTTP/1.0".

dwFlags
Qualsiasi combinazione dei flag INTERNET_ FLAG_*. Per una descrizione dei possibili valori dwFlags , vedere la sezione Osservazioni.

nVerb
Numero associato al tipo di richiesta HTTP. Può essere uno dei seguenti:

Tipo di richiesta HTTP Valore nVerb
HTTP_VERB_POST 0
HTTP_VERB_GET 1
HTTP_VERB_HEAD 2
HTTP_VERB_PUT 3
HTTP_VERB_LINK 4
HTTP_VERB_DELETE 5
HTTP_VERB_UNLINK 6

Valore restituito

Puntatore all'oggetto CHttpFile richiesto.

Osservazioni:

dwFlags può essere uno dei seguenti:

Flag Internet Descrizione
INTERNET_FLAG_RELOAD Impone un download del file, dell'oggetto o dell'elenco di directory richiesto dal server di origine e non dalla cache.
INTERNET_FLAG_DONT_CACHE Non aggiunge l'entità restituita alla cache.
INTERNET_FLAG_MAKE_PERSISTENT Aggiunge l'entità restituita alla cache come entità persistente. Ciò significa che la pulizia della cache standard, il controllo della coerenza o l'operazione di Garbage Collection non possono rimuovere questo elemento dalla cache.
INTERNET_FLAG_SECURE Utilizza semantica sicura delle transazioni. Si traduce nell'uso di SSL/PCT ed è significativo solo nelle richieste HTTP
INTERNET_FLAG_NO_AUTO_REDIRECT Usato solo con HTTP, specifica che i reindirizzamenti non devono essere gestiti automaticamente in CHttpFile::SendRequest.

Esegue l'override dell'impostazione predefinita dwContext per impostare l'identificatore di contesto su un valore di propria scelta. L'identificatore di contesto è associato a questa operazione specifica dell'oggetto CHttpConnection creato dal relativo oggetto CInternetSession . Il valore viene restituito a CInternetSession::OnStatusCallback per fornire lo stato sull'operazione con cui viene identificato. Per altre informazioni sull'identificatore di contesto, vedere l'articolo Passaggi preliminari su Internet: WinInet .

In questa funzione possono essere generate eccezioni.

Vedi anche

Classe CInternetConnection
Grafico della gerarchia
Classe CInternetConnection
Classe CHttpFile