Udostępnij za pośrednictwem


Klasa CHttpConnection

Zarządza połączeniem z serwerem HTTP.

Składnia

class CHttpConnection : public CInternetConnection

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CHttpConnection::CHttpConnection Tworzy obiekt CHttpConnection.

Metody publiczne

Nazwa/nazwisko opis
CHttpConnection::OpenRequest Otwiera żądanie HTTP.

Uwagi

HTTP to jeden z trzech protokołów serwera internetowego implementowanych przez klasy MFC WinInet.

Klasa CHttpConnection zawiera konstruktora i jedną funkcję składową OpenRequest, która zarządza połączeniami z serwerem za pomocą protokołu HTTP.

Aby komunikować się z serwerem HTTP, należy najpierw utworzyć wystąpienie CInternetSession, a następnie utworzyć obiekt CHttpConnection . Nigdy nie tworzysz obiektu bezpośrednio; zamiast tego wywołaj metodę CHttpConnection CInternetSession::GetHttpConnection, która tworzy CHttpConnection obiekt i zwraca do niego wskaźnik.

Aby dowiedzieć się więcej o CHttpConnection sposobie pracy z innymi klasami internetowymi MFC, zobacz artykuł Programowanie internetowe za pomocą usługi WinInet. Aby uzyskać więcej informacji na temat nawiązywania połączenia z serwerami przy użyciu dwóch pozostałych obsługiwanych protokołów internetowych, zobacz klasy CGopherConnection i CFtpConnection.

Hierarchia dziedziczenia

Obiekt CObject

CInternetConnection

CHttpConnection

Wymagania

Nagłówek: afxinet.h

CHttpConnection::CHttpConnection

Ta funkcja składowa jest wywoływana w celu skonstruowania CHttpConnection obiektu.

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

Parametry

PSession
Wskaźnik do obiektu CInternetSession .

hPołączone
Dojście do połączenia internetowego.

pstrServer
Wskaźnik do ciągu zawierającego nazwę serwera.

dwContext
Identyfikator CInternetConnection kontekstu obiektu. Aby uzyskać więcej informacji o dwContext, zobacz sekcję Uwagi .

nPort
Numer identyfikujący port internetowy dla tego połączenia.

pstrUserName
Wskaźnik do ciągu zakończonego wartością null, który określa nazwę użytkownika do zalogowania. Jeśli wartość NULL, wartość domyślna to anonimowe.

pstrPassword
Wskaźnik do ciągu zakończonego wartością null, który określa hasło używane do logowania. Jeśli zarówno pstrPassword , jak i pstrUserName mają wartość NULL, domyślne anonimowe hasło to nazwa e-mail użytkownika. Jeśli parametr pstrPassword ma wartość NULL lub pusty ciąg, ale parametr pstrUserName nie ma wartości NULL, używane jest puste hasło. W poniższej tabeli opisano zachowanie czterech możliwych ustawień pstrUserName i pstrPassword:

pstrUserName pstrPassword Nazwa użytkownika wysłana do serwera FTP Hasło wysyłane do serwera FTP
NULL lub " " NULL lub " " "anonimowy" Nazwa e-mail użytkownika
Ciąg inny niż NULL NULL lub " " pstrUserName " "
NULL Ciąg inny niż NULL BŁĄD BŁĄD
Ciąg inny niż NULL Ciąg inny niż NULL pstrUserName pstrPassword

dwFlags
Dowolna kombinacja INTERNET_FLAG_* flag. Zobacz tabelę w sekcji Uwagi CHttpConnection::OpenRequest, aby zapoznać się z opisem wartości dwFlags.

Uwagi

Nigdy nie tworzysz bezpośrednio CHttpConnection . Zamiast tego należy utworzyć obiekt, wywołując metodę CInternetSession::GetHttpConnection.

CHttpConnection::OpenRequest

Wywołaj tę funkcję składową, aby otworzyć połączenie 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);

Parametry

pstrVerb
Wskaźnik do ciągu zawierającego czasownik do użycia w żądaniu. Jeśli jest używana wartość NULL, jest używana wartość "GET".

pstrObjectName
Wskaźnik do ciągu zawierającego obiekt docelowy określonego zlecenia. Ten ciąg jest zazwyczaj nazwą pliku, modułem wykonywalnym lub specyfikatorem wyszukiwania.

pstrReferer
Wskaźnik do ciągu, który określa adres (adres URL) dokumentu, z którego uzyskano adres URL w żądaniu (pstrObjectName). Jeśli wartość NULL, nie określono żadnego nagłówka HTTP.

dwContext
Identyfikator kontekstu operacji OpenRequest . Aby uzyskać więcej informacji o dwContext, zobacz sekcję Uwagi.

ppstrAcceptTypes
Wskaźnik do tablicy zakończonych wartością null wskaźników LPCTSTR do ciągów wskazujących typy zawartości akceptowane przez klienta. Jeśli parametr ppstrAcceptTypes ma wartość NULL, serwery interpretują, że klient akceptuje tylko dokumenty typu "text/*" (czyli tylko dokumenty tekstowe, a nie obrazy lub inne pliki binarne). Typ zawartości jest odpowiednikiem zmiennej CGI CONTENT_TYPE, która identyfikuje typ danych dla zapytań, które mają dołączone informacje, takie jak HTTP POST i PUT.

pstrVersion
Wskaźnik do ciągu definiującego wersję HTTP. Jeśli jest używana wartość NULL, jest używana wartość "HTTP/1.0".

dwFlags
Dowolna kombinacja flag INTERNET_ FLAG_*. Zobacz sekcję Uwagi, aby zapoznać się z opisem możliwych wartości dwFlags .

nVerb
Liczba skojarzona z typem żądania HTTP. Może być jednym z następujących elementów:

Typ żądania HTTP nVerb wartość
HTTP_VERB_POST 0
HTTP_VERB_GET 1
HTTP_VERB_HEAD 2
HTTP_VERB_PUT 3
HTTP_VERB_LINK 100
HTTP_VERB_DELETE 5
HTTP_VERB_UNLINK 6

Wartość zwracana

Wskaźnik do żądanego obiektu CHttpFile .

Uwagi

plik dwFlags może być jednym z następujących elementów:

Flaga internetowa opis
INTERNET_FLAG_RELOAD Wymusza pobranie żądanego pliku, obiektu lub katalogu z serwera pochodzenia, a nie z pamięci podręcznej.
INTERNET_FLAG_DONT_CACHE Nie dodaje zwróconej jednostki do pamięci podręcznej.
INTERNET_FLAG_MAKE_PERSISTENT Dodaje zwróconą jednostkę do pamięci podręcznej jako jednostkę trwałą. Oznacza to, że standardowe czyszczenie pamięci podręcznej, sprawdzanie spójności lub odzyskiwanie pamięci nie może usunąć tego elementu z pamięci podręcznej.
INTERNET_FLAG_SECURE Używa semantyki bezpiecznej transakcji. Przekłada się na użycie protokołu SSL/PCT i ma znaczenie tylko w przypadku żądań HTTP
INTERNET_FLAG_NO_AUTO_REDIRECT Używany tylko z protokołem HTTP określa, że przekierowania nie powinny być obsługiwane automatycznie w CHttpFile::SendRequest.

Zastąpij wartość domyślną dwContext , aby ustawić identyfikator kontekstu na wybraną wartość. Identyfikator kontekstu jest skojarzony z tą konkretną operacją obiektu utworzonego CHttpConnection przez obiekt CInternetSession . Wartość jest zwracana do CInternetSession::OnStatusCallback , aby podać stan operacji, z którą została zidentyfikowana. Aby uzyskać więcej informacji na temat identyfikatora kontekstu, zobacz artykuł Internet First Steps: WinInet (Internet First Steps: WinInet: WinInet ).

Wyjątki mogą być zgłaszane z tą funkcją.

Zobacz też

Klasa CInternetConnection
Wykres hierarchii
Klasa CInternetConnection
Klasa CHttpFile