CInternetSession
Klasa
Tworzy i inicjuje jedną lub kilka równoczesnych sesji internetowych, a w razie potrzeby opisuje połączenie z serwerem proxy.
Składnia
class CInternetSession : public CObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CInternetSession::CInternetSession |
CInternetSession Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CInternetSession::Close |
Zamyka połączenie internetowe po zakończeniu sesji internetowej. |
CInternetSession::EnableStatusCallback |
Ustanawia procedurę wywołania zwrotnego stanu. |
CInternetSession::GetContext |
Zamyka połączenie internetowe po zakończeniu sesji internetowej. |
CInternetSession::GetCookie |
Zwraca pliki cookie dla określonego adresu URL i wszystkich jego nadrzędnych adresów URL. |
CInternetSession::GetCookieLength |
Pobiera zmienną określającą długość pliku cookie przechowywanego w buforze. |
CInternetSession::GetFtpConnection |
Otwiera sesję FTP z serwerem. Zaloguje się do użytkownika. |
CInternetSession::GetGopherConnection |
Otwiera serwer gopher dla aplikacji, która próbuje otworzyć połączenie. |
CInternetSession::GetHttpConnection |
Otwiera serwer HTTP dla aplikacji, która próbuje otworzyć połączenie. |
CInternetSession::OnStatusCallback |
Aktualizuje stan operacji, gdy jest włączone wywołanie zwrotne stanu. |
CInternetSession::OpenURL |
Analizuje i otwiera adres URL. |
CInternetSession::SetCookie |
Ustawia plik cookie dla określonego adresu URL. |
CInternetSession::SetOption |
Ustawia opcje sesji internetowej. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CInternetSession::operator HINTERNET |
Dojście do bieżącej sesji internetowej. |
Uwagi
Jeśli połączenie internetowe musi być utrzymywane przez czas trwania aplikacji, możesz utworzyć składową CInternetSession
klasy CWinApp
.
Po ustanowieniu sesji internetowej możesz wywołać metodę OpenURL
. CInternetSession
Następnie analizuje adres URL, wywołując funkcję AfxParseURL
globalną . Niezależnie od typu CInternetSession
protokołu, interpretuje adres URL i zarządza nim za Ciebie. Może obsługiwać żądania dotyczące plików lokalnych zidentyfikowanych za pomocą zasobu adresu URL "file://". OpenURL
Polecenie zwróci wskaźnik do CStdioFile
obiektu, jeśli przekazana nazwa jest plikiem lokalnym.
Jeśli otworzysz adres URL na serwerze internetowym przy użyciu programu OpenURL
, możesz odczytać informacje z witryny. Jeśli chcesz wykonać akcje specyficzne dla usługi (na przykład HTTP, FTP lub gopher) na plikach znajdujących się na serwerze, musisz ustanowić odpowiednie połączenie z tym serwerem. Aby otworzyć określony rodzaj połączenia bezpośrednio z określoną usługą, użyj jednej z następujących funkcji składowych:
GetGopherConnection
aby otworzyć połączenie z usługą gopher.GetHttpConnection
aby otworzyć połączenie z usługą HTTP.GetFtpConnection
aby otworzyć połączenie z usługą FTP.
SetOption
Umożliwia ustawienie opcji zapytania sesji, takich jak wartości limitu czasu, liczba ponownych prób itd.
CInternetSession
funkcje SetCookie
członkowskie , GetCookie
i GetCookieLength
zapewniają środki do zarządzania bazą danych plików cookie Win32, za pomocą których serwery i skrypty utrzymują informacje o stanie stacji roboczej klienta.
Aby uzyskać więcej informacji na temat podstawowych zadań programowania internetowego, zobacz artykuł Internet First Steps: WinInet
. Aby uzyskać ogólne informacje na temat używania klas MFC WinInet
, zobacz artykuł Programowanie internetowe za pomocą WinInet
programu .
Uwaga
CInternetSession
program zgłosi wyjątek AfxThrowNotSupportedException
dla nieobsługiwanych typów usług. Obecnie obsługiwane są tylko następujące typy usług: FTP, HTTP, gopher i plik.
Hierarchia dziedziczenia
CObject
CInternetSession
Wymagania
Nagłówek: afxinet.h
CInternetSession::CInternetSession
Ta funkcja składowa jest wywoływana CInternetSession
podczas tworzenia obiektu.
CInternetSession(
LPCTSTR pstrAgent = NULL,
DWORD_PTR dwContext = 1,
DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,
LPCTSTR pstrProxyName = NULL,
LPCTSTR pstrProxyBypass = NULL,
DWORD dwFlags = 0);
Parametry
pstrAgent
Wskaźnik do ciągu, który identyfikuje nazwę aplikacji lub jednostki wywołującej funkcje internetowe (na przykład "Microsoft Internet Browser"). Jeśli pstrAgent
to NULL
(wartość domyślna), platforma wywołuje funkcję AfxGetAppName
globalną , która zwraca ciąg zakończony wartością null zawierającą nazwę aplikacji. Niektóre protokoły używają tego ciągu do identyfikowania aplikacji na serwerze.
dwContext
Identyfikator kontekstu operacji. dwContext
identyfikuje informacje o stanie operacji zwrócone przez CInternetSession::OnStatusCallback
element . Wartość domyślna to 1; Można jednak jawnie przypisać określony identyfikator kontekstu dla operacji. Obiekt i wszystkie wykonywane prace zostaną skojarzone z tym identyfikatorem kontekstu.
dwAccessType
Wymagany typ dostępu. Poniżej przedstawiono prawidłowe wartości, z których można podać dokładnie jedną z następujących wartości:
INTERNET_OPEN_TYPE_PRECONFIG
Połącz się przy użyciu wstępnie skonfigurowanych ustawień w rejestrze. Ten typ dostępu jest ustawiany jako domyślny. Aby nawiązać połączenie za pośrednictwem serwera proxy TIS, ustawdwAccessType
tę wartość, a następnie odpowiednio ustaw rejestr.INTERNET_OPEN_TYPE_DIRECT
Połącz się bezpośrednio z Internetem.INTERNET_OPEN_TYPE_PROXY
Nawiąż połączenie za pośrednictwem serwera proxy CERN.
Aby uzyskać informacje na temat nawiązywania połączenia z różnymi typami serwerów proxy, zobacz Kroki w typowej aplikacji klienckiej FTP.
pstrProxyName
Nazwa preferowanego serwera proxy CERN, jeśli dwAccessType
jest ustawiona jako INTERNET_OPEN_TYPE_PROXY
. Wartość domyślna to NULL
.
pstrProxyBypass
Wskaźnik do ciągu zawierającego opcjonalną listę adresów serwera. Te adresy mogą zostać pominięte podczas korzystania z dostępu do serwera proxy. Jeśli zostanie podana NULL
wartość, lista obejścia będzie odczytywana z rejestru. Ten parametr ma znaczenie tylko wtedy, gdy dwAccessType
jest ustawiony na INTERNET_OPEN_TYPE_PROXY
wartość .
dwFlags
Wskazuje różne opcje buforowania. Wartość domyślna to 0. Możliwe wartości to:
INTERNET_FLAG_DONT_CACHE
Nie buforuj danych lokalnie ani na żadnym serwerze bramy.INTERNET_FLAG_OFFLINE
Operacje pobierania są zadowalające tylko za pośrednictwem trwałej pamięci podręcznej. Jeśli element nie istnieje w pamięci podręcznej, zwracany jest odpowiedni kod błędu. Ta flaga może być połączona z operatorem bitowym "or" (|
).
Uwagi
CInternetSession
jest pierwszą funkcją internetową wywoływaną przez aplikację. Inicjuje wewnętrzne struktury danych i przygotowuje się do przyszłych wywołań z aplikacji.
Jeśli nie można otworzyć żadnego połączenia internetowego, CInternetSession
zgłasza błąd AfxThrowInternetException
.
Przykład
Zobacz przykład dla elementu CFtpFileFind
.
CInternetSession::Close
Wywołaj tę funkcję składową, gdy aplikacja zakończyła korzystanie z CInternetSession
obiektu .
virtual void Close();
Przykład
Zobacz przykład dla elementu CFtpFileFind
.
CInternetSession::EnableStatusCallback
Wywołaj tę funkcję składową, aby włączyć wywołanie zwrotne stanu.
BOOL EnableStatusCallback(BOOL bEnable = TRUE);
Parametry
bEnable
Określa, czy wywołanie zwrotne jest włączone, czy wyłączone. Wartość domyślna to TRUE
.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0. Jeśli wywołanie nie powiedzie się, określ przyczynę błędu, sprawdzając zgłoszony CInternetException
obiekt.
Uwagi
Podczas obsługi wywołania zwrotnego stanu można podać stan postępu operacji (na przykład rozpoznawania nazwy, nawiązywania połączenia z serwerem itd.) na pasku stanu aplikacji. Wyświetlanie stanu operacji jest szczególnie pożądane podczas długotrwałej operacji.
Ponieważ wywołania zwrotne występują podczas przetwarzania żądania, aplikacja powinna poświęcić jak najwięcej czasu w wywołaniu zwrotnym, aby zapobiec pogorszeniu przepływności danych do sieci. Na przykład umieszczenie okna dialogowego w wywołaniu zwrotnym może być tak długotrwałą operacją, że serwer kończy żądanie.
Nie można usunąć wywołania zwrotnego stanu, o ile wszystkie wywołania zwrotne oczekują.
Aby obsługiwać wszystkie operacje asynchronicznie, musisz utworzyć własny wątek lub użyć funkcji WinInet bez MFC.
CInternetSession::GetContext
Wywołaj tę funkcję składową, aby uzyskać wartość kontekstu dla określonej sesji aplikacji.
DWORD_PTR GetContext() const;
Wartość zwracana
Identyfikator kontekstu zdefiniowanego przez aplikację.
Uwagi
OnStatusCallback
używa identyfikatora kontekstu zwróconego przez GetContext
usługę , aby zgłosić stan określonej aplikacji. Na przykład gdy użytkownik aktywuje żądanie internetowe, które obejmuje zwrócenie informacji o stanie, wywołanie zwrotne stanu używa identyfikatora kontekstu do raportowania stanu dla tego konkretnego żądania. Jeśli użytkownik aktywuje dwa oddzielne żądania internetowe, które obejmują zwracanie informacji o stanie, użyje identyfikatorów kontekstu, OnStatusCallback
aby zwrócić stan odpowiadających im żądań. W związku z tym identyfikator kontekstu jest używany dla wszystkich operacji wywołania zwrotnego stanu i jest skojarzony z sesją do momentu zakończenia sesji.
Aby uzyskać więcej informacji na temat operacji asynchronicznych, zobacz artykuł Internet First Steps: WinInet (Pierwsze kroki: WinInet).
CInternetSession::GetCookie
Ta funkcja składowa implementuje zachowanie funkcji InternetGetCookie
Win32 zgodnie z opisem w zestawie Windows SDK.
static BOOL GetCookie(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName,
LPTSTR pstrCookieData,
DWORD dwBufLen);
static BOOL GetCookie(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName,
CString& strCookieData);
Parametry
pstrUrl
Wskaźnik do ciągu zawierającego adres URL.
pstrCookieName
Wskaźnik do ciągu zawierającego nazwę pliku cookie do pobrania dla określonego adresu URL.
pstrCookieData
W pierwszym przeciążeniu wskaźnik do ciągu zawierającego adres buforu, który odbiera dane pliku cookie. Ta wartość może mieć wartość NULL
. W drugim przeciążeniu odwołanie do CString
obiektu w celu odbierania danych plików cookie.
dwBufLen
Zmienna określająca rozmiar buforu pstrCookieData
. Jeśli funkcja powiedzie się, bufor odbiera ilość danych skopiowanych do buforu pstrCookieData
. Jeśli pstrCookieData
parametr ma NULL
wartość , otrzymuje wartość określającą rozmiar buforu niezbędnego do skopiowania wszystkich danych pliku cookie.
Wartość zwracana
Zwraca wartość w przypadku powodzenia TRUE
lub FALSE
w inny sposób. Jeśli wywołanie nie powiedzie się, wywołaj funkcję GetLastError
Win32, aby określić przyczynę błędu. Mają zastosowanie następujące wartości błędów:
ERROR_NO_MORE_ITEMS
Nie ma pliku cookie dla określonego adresu URL i wszystkich jego elementów nadrzędnych.ERROR_INSUFFICIENT_BUFFER
Przekazana wartośćdwBufLen
jest niewystarczająca do skopiowania wszystkich danych plików cookie. ZwracanadwBufLen
wartość to rozmiar buforu niezbędnego do pobrania wszystkich danych.
Uwagi
W drugim przeciążeniu MFC pobiera dane plików cookie do dostarczonego CString
obiektu.
CInternetSession::GetCookieLength
Wywołaj tę funkcję składową, aby uzyskać długość pliku cookie przechowywanego w buforze.
static DWORD GetCookieLength(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName);
Parametry
pstrUrl
Wskaźnik do ciągu zawierającego adres URL
pstrCookieName
Wskaźnik do ciągu zawierającego nazwę pliku cookie.
Wartość zwracana
DWORD
Wartość wskazująca długość pliku cookie przechowywanego w buforze. Zero, jeśli nie ma pliku cookie o nazwie wskazanej przez pstrCookieName
.
Uwagi
Ta wartość jest używana przez .GetCookie
CInternetSession::GetFtpConnection
Wywołaj tę funkcję składową, aby nawiązać połączenie FTP i uzyskać wskaźnik do CFtpConnection
obiektu.
CFtpConnection* GetFtpConnection(
LPCTSTR pstrServer,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
BOOL bPassive = FALSE);
Parametry
pstrServer
Wskaźnik do ciągu zawierającego nazwę serwera FTP.
pstrUserName
Wskaźnik do ciągu zakończonego wartości null, który określa nazwę użytkownika do zalogowania. Jeśli 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
, NULL
domyślne hasło anonimowe to nazwa e-mail użytkownika. Jeśli pstrPassword
parametr to NULL
(lub ciąg pusty), ale pstrUserName
nie NULL
, jest używane 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 " " |
"anonymous" |
Nazwa e-mail użytkownika |
Ciąg inny niżNULL ciąg |
NULL lub " " |
pstrUserName |
" " |
NULL |
Ciąg inny niżNULL ciąg |
BŁĄD | BŁĄD |
Ciąg inny niżNULL ciąg |
Ciąg inny niżNULL ciąg |
pstrUserName |
pstrPassword |
nPort
Numer identyfikujący port TCP/IP do użycia na serwerze.
bPassive
Określa tryb pasywny lub aktywny dla tej sesji FTP. Jeśli ustawiono TRUE
wartość , ustawia interfejs API dwFlag
Win32 na INTERNET_FLAG_PASSIVE
wartość .
Wartość zwracana
Wskaźnik do CFtpConnection
obiektu. Jeśli wywołanie nie powiedzie się, określ przyczynę błędu, sprawdzając zgłoszony CInternetException
obiekt.
Uwagi
GetFtpConnection
nawiązuje połączenie z serwerem FTP i tworzy i zwraca wskaźnik do CFTPConnection
obiektu. Nie wykonuje żadnej konkretnej operacji na serwerze. Jeśli na przykład zamierzasz odczytywać lub zapisywać w plikach, musisz wykonać te operacje jako oddzielne kroki. Zobacz klasy CFtpConnection
i CFtpFileFind
informacje na temat wyszukiwania plików, otwierania plików oraz odczytywania lub zapisywania w plikach. Zobacz artykuł Internet Programming with WinInet (Programowanie internetowe za pomocą usługi WinInet ), aby uzyskać instrukcje dotyczące wykonywania typowych zadań połączenia FTP.
Przykład
Zobacz przykład dla elementu CFtpFileFind
.
CInternetSession::GetGopherConnection
Wywołaj tę funkcję składową, aby ustanowić nowe połączenie gopher i uzyskać wskaźnik do CGopherConnection
obiektu.
CGopherConnection* GetGopherConnection(
LPCTSTR pstrServer,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
Parametry
pstrServer
Wskaźnik do ciągu zawierającego nazwę serwera gopher.
pstrUserName
Wskaźnik do ciągu zawierającego nazwę użytkownika.
pstrPassword
Wskaźnik do ciągu zawierającego hasło dostępu.
nPort
Numer identyfikujący port TCP/IP do użycia na serwerze.
Wartość zwracana
Wskaźnik do CGopherConnection
obiektu. Jeśli wywołanie nie powiedzie się, określ przyczynę błędu, sprawdzając zgłoszony CInternetException
obiekt.
Uwagi
GetGopherConnection
nawiązuje połączenie z serwerem gopher i tworzy i zwraca wskaźnik do CGopherConnection
obiektu. Nie wykonuje żadnej konkretnej operacji na serwerze. Jeśli na przykład zamierzasz odczytywać lub zapisywać dane, musisz wykonać te operacje jako oddzielne kroki. Zobacz klasy CGopherConnection
, CGopherFile
i, aby CGopherFileFind
uzyskać informacje na temat wyszukiwania plików, otwierania plików i odczytywania lub zapisywania w plikach. Aby uzyskać informacje na temat przeglądania witryny FTP, zobacz funkcję OpenURL
składową . Zobacz artykuł Internet Programming with WinInet (Programowanie internetowe za pomocą usługi WinInet ), aby uzyskać instrukcje dotyczące wykonywania typowych zadań połączenia gopher.
CInternetSession::GetHttpConnection
Wywołaj tę funkcję składową, aby ustanowić połączenie HTTP i uzyskać wskaźnik do CHttpConnection
obiektu.
CHttpConnection* GetHttpConnection(
LPCTSTR pstrServer,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL);
CHttpConnection* GetHttpConnection(
LPCTSTR pstrServer,
DWORD dwFlags,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL);
Parametry
pstrServer
Wskaźnik do ciągu zawierającego nazwę serwera HTTP.
nPort
Numer identyfikujący port TCP/IP do użycia na serwerze.
pstrUserName
Wskaźnik do ciągu zawierającego nazwę użytkownika.
pstrPassword
Wskaźnik do ciągu zawierającego hasło dostępu.
dwflags
Dowolna kombinacja INTERNET_FLAG_*
flag. Aby uzyskać opis dwFlags
wartości, zobacz tabelę w sekcji CHttpConnection::OpenRequest
Uwagi.
Wartość zwracana
Wskaźnik do CHttpConnection
obiektu. Jeśli wywołanie nie powiedzie się, określ przyczynę błędu, sprawdzając zgłoszony CInternetException
obiekt.
Uwagi
GetHttpConnection
nawiązuje połączenie z serwerem HTTP i tworzy i zwraca wskaźnik do CHttpConnection
obiektu. Nie wykonuje żadnej konkretnej operacji na serwerze. Jeśli na przykład zamierzasz wykonać zapytanie dotyczące nagłówka HTTP, musisz wykonać tę operację jako oddzielny krok. Zobacz klasy CHttpConnection
i CHttpFile
informacje o operacjach, które można wykonać przy użyciu połączenia z serwerem HTTP. Aby uzyskać informacje na temat przeglądania witryny HTTP, zobacz funkcję OpenURL
składową . Zobacz artykuł Internet Programming with WinInet (Programowanie internetowe za pomocą usługi WinInet ), aby uzyskać instrukcje dotyczące wykonywania typowych zadań połączenia HTTP.
CInternetSession::OnStatusCallback
Ta funkcja składowa jest wywoływana przez platformę w celu zaktualizowania stanu po włączeniu wywołania zwrotnego stanu i oczekiwaniu na operację.
virtual void OnStatusCallback(
DWORD_PTR dwContext,
DWORD dwInternetStatus,
LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength);
Parametry
dwContext
Wartość kontekstu dostarczana przez aplikację.
dwInternetStatus
Kod stanu wskazujący, dlaczego jest wykonywane wywołanie zwrotne. Zobacz Uwagi dotyczące tabeli możliwych wartości.
lpvStatusInformation
Wskaźnik do buforu zawierającego informacje istotne dla tego wywołania zwrotnego.
dwStatusInformationLength
Rozmiar lpvStatusInformation
.
Uwagi
Aby skorzystać z wywołania zwrotnego stanu, musisz najpierw wywołać EnableStatusCallback
wywołanie zwrotne.
Parametr dwInternetStatus
wskazuje wykonywaną operację i określa zawartość lpvStatusInformation
elementu . dwStatusInformationLength
wskazuje długość danych zawartych w pliku lpvStatusInformation
. Następujące wartości stanu dla dwInternetStatus
elementu są definiowane w następujący sposób:
Wartość | Znaczenie |
---|---|
INTERNET_STATUS_RESOLVING_NAME |
Wyszukując adres IP nazwy zawartej w lpvStatusInformation pliku . |
INTERNET_STATUS_NAME_RESOLVED |
Pomyślnie znaleziono adres IP nazwy zawartej w lpvStatusInformation pliku . |
INTERNET_STATUS_CONNECTING_TO_SERVER |
Nawiązywanie połączenia z adresem gniazda (SOCKADDR ) wskazywane przez lpvStatusInformation . |
INTERNET_STATUS_CONNECTED_TO_SERVER |
Pomyślnie nawiązano połączenie z adresem gniazda (SOCKADDR ) wskazywanym przez lpvStatusInformation . |
INTERNET_STATUS_SENDING_REQUEST |
Wysyłanie żądania informacji do serwera. Parametr lpvStatusInformation to NULL . |
INTERNET_STATUS_REQUEST_SENT |
Pomyślnie wysłano żądanie informacji do serwera. Parametr lpvStatusInformation to NULL . |
INTERNET_STATUS_RECEIVING_RESPONSE |
Oczekiwanie na odpowiedź serwera na żądanie. Parametr lpvStatusInformation to NULL . |
INTERNET_STATUS_RESPONSE_RECEIVED |
Pomyślnie odebrano odpowiedź z serwera. Parametr lpvStatusInformation to NULL . |
INTERNET_STATUS_CLOSING_CONNECTION |
Zamykanie połączenia z serwerem. Parametr lpvStatusInformation to NULL . |
INTERNET_STATUS_CONNECTION_CLOSED |
Pomyślnie zamknięto połączenie z serwerem. Parametr lpvStatusInformation to NULL . |
INTERNET_STATUS_HANDLE_CREATED |
Funkcja interfejsu API InternetConnect Win32 służy do wskazywania, że utworzyła nowy uchwyt. Dzięki temu aplikacja wywołuje funkcję InternetCloseHandle Win32 z innego wątku, jeśli połączenie trwa zbyt długo. Aby uzyskać więcej informacji na temat tych funkcji, zobacz Zestaw SDK systemu Windows. |
INTERNET_STATUS_HANDLE_CLOSING |
Pomyślnie zakończono tę wartość dojścia. |
Zastąpi tę funkcję składową, aby wymagać pewnej akcji przed wykonaniem procedury wywołania zwrotnego stanu.
Uwaga
Wywołania zwrotne stanu wymagają ochrony stanu wątku. Jeśli używasz MFC w bibliotece udostępnionej, dodaj następujący wiersz na początku przesłonięcia:
AFX_MANAGE_STATE(AfxGetAppModuleState());
Aby uzyskać więcej informacji na temat operacji asynchronicznych, zobacz artykuł Internet First Steps: WinInet (Pierwsze kroki: WinInet).
CInternetSession::OpenURL
Wywołaj tę funkcję składową, aby wysłać określone żądanie do serwera HTTP i zezwolić klientowi na określenie dodatkowych nagłówków RFC822, MIME lub HTTP do wysłania wraz z żądaniem.
CStdioFile* OpenURL(
LPCTSTR pstrURL,
DWORD_PTR dwContext = 1,
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII,
LPCTSTR pstrHeaders = NULL,
DWORD dwHeadersLength = 0);
Parametry
pstrURL
Wskaźnik do nazwy adresu URL, aby rozpocząć odczytywanie. Obsługiwane są tylko adresy URL rozpoczynające się od file:
, ftp:
, gopher:
lub http:
. Asercyjnie, jeśli pstrURL
ma wartość NULL
.
dwContext
Wartość zdefiniowana przez aplikację przekazana z zwróconym dojściem w wywołaniu zwrotnym.
dwFlags
Flagi opisujące sposób obsługi tego połączenia. Zobacz Uwagi, aby uzyskać więcej informacji na temat prawidłowych flag. Prawidłowe flagi to:
INTERNET_FLAG_TRANSFER_ASCII
Wartość domyślna. Przenieś plik jako tekst ASCII.INTERNET_FLAG_TRANSFER_BINARY
Przenieś plik jako plik binarny.INTERNET_FLAG_RELOAD
Pobierz dane z przewodu, nawet jeśli są lokalnie buforowane.INTERNET_FLAG_DONT_CACHE
Nie buforuj danych lokalnie ani w żadnych bramach.INTERNET_FLAG_SECURE
Ta flaga ma zastosowanie tylko do żądań HTTP. Żąda bezpiecznych transakcji na przewodach za pomocą protokołu Secure Sockets Layer lub PCT.INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT
Jeśli to możliwe, użyj ponownie istniejących połączeń z serwerem dla nowych żądań generowanych przezOpenUrl
zamiast tworzyć nową sesję dla każdego żądania połączenia.INTERNET_FLAG_PASSIVE
Służy do obsługi witryny FTP. Używa pasywnej semantyki FTP. Używany z wartościąCInternetConnection
OpenURL
.
pstrHeaders
Wskaźnik do ciągu zawierającego nagłówki, które mają być wysyłane do serwera HTTP.
dwHeadersLength
Długość dodatkowych nagłówków w postaci znaków. Jeśli tak -1L
jest i pstrHeaders
nie jestNULL
, przyjmuje się, pstrHeaders
że ma wartość zero zakończonych, a długość jest obliczana.
Wartość zwracana
Zwraca dojście do plików tylko dla usług internetowych FTP, GOPHER, HTTP i FILE. Zwraca wartość NULL
, jeśli analizowanie nie powiodło się.
Wskaźnik, który OpenURL
zwraca, pstrURL
zależy od typu usługi. W poniższej tabeli przedstawiono możliwe wskaźniki OpenURL
, które mogą zwracać.
Typ adresu URL | Zwraca |
---|---|
file:// |
CStdioFile* |
http:// |
CHttpFile* |
gopher:// |
CGopherFile* |
ftp:// |
CInternetFile* |
Uwagi
Parametr dwFlags
musi zawierać wartość INTERNET_FLAG_TRANSFER_ASCII
lub INTERNET_FLAG_TRANSFER_BINARY
, ale nie oba. Pozostałe flagi można połączyć z operatorem bitowym "or" (|
).
OpenURL
, który opakowuje funkcję InternetOpenURL
Win32 , umożliwia pobieranie, pobieranie i odczytywanie danych z serwera internetowego. OpenURL
program nie zezwala na manipulowanie plikami w lokalizacji zdalnej, dlatego nie CInternetConnection
wymaga żadnego obiektu.
Aby użyć funkcji specyficznych dla połączenia (czyli specyficznych dla protokołu), takich jak zapisywanie w pliku, należy otworzyć sesję, a następnie otworzyć określony rodzaj połączenia, a następnie użyć tego połączenia, aby otworzyć plik w żądanym trybie. Zobacz CInternetConnection
, aby uzyskać więcej informacji na temat funkcji specyficznych dla połączenia.
CInternetSession::operator HINTERNET
Użyj tego operatora, aby uzyskać dojście systemu Windows dla bieżącej sesji internetowej.
operator HINTERNET() const;
CInternetSession::SetCookie
Ustawia plik cookie dla określonego adresu URL.
static BOOL SetCookie(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName,
LPCTSTR pstrCookieData);
Parametry
pstrUrl
Wskaźnik do ciągu zakończonego wartością null, który określa adres URL, dla którego ma zostać ustawiony plik cookie.
pstrCookieName
Wskaźnik do ciągu zawierającego nazwę pliku cookie.
pstrCookieData
Wskaźnik do ciągu zawierającego rzeczywiste dane ciągu do skojarzenia z adresem URL.
Wartość zwracana
Zwraca wartość w przypadku powodzenia TRUE
lub FALSE
w inny sposób. Aby uzyskać określony kod błędu, wywołaj metodę GetLastError
.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu InternetSetCookie
Win32 zgodnie z opisem w zestawie WINDOWS SDK.
CInternetSession::SetOption
Wywołaj tę funkcję składową, aby ustawić opcje sesji internetowej.
BOOL SetOption(
DWORD dwOption,
LPVOID lpBuffer,
DWORD dwBufferLength,
DWORD dwFlags = 0);
BOOL SetOption(
DWORD dwOption,
DWORD dwValue,
DWORD dwFlags = 0);
Parametry
dwOption
Opcja Internet do ustawienia. Aby uzyskać listę możliwych opcji, zobacz Flagi opcji w zestawie Windows SDK.
lpBuffer
Bufor zawierający ustawienie opcji.
dwBufferLength
Długość lpBuffer
lub rozmiar dwValue
.
dwValue
Element DWORD
zawierający ustawienie opcji.
dwFlags
Wskazuje różne opcje buforowania. Wartość domyślna to 0. Możliwe wartości to:
INTERNET_FLAG_DONT_CACHE
Nie buforuj danych lokalnie ani na żadnym serwerze bramy.INTERNET_FLAG_OFFLINE
Operacje pobierania są zadowalające tylko za pośrednictwem trwałej pamięci podręcznej. Jeśli element nie istnieje w pamięci podręcznej, zwracany jest odpowiedni kod błędu. Ta flaga może być połączona z operatorem bitowym "or" (|
).
Wartość zwracana
Jeśli operacja zakończyła się pomyślnie, zwracana jest wartość TRUE
. Jeśli wystąpił błąd, zwracana jest wartość FALSE
. Jeśli wywołanie zakończy się niepowodzeniem, funkcja GetLastError
Win32 może zostać wywołana, aby określić przyczynę błędu.
Zobacz też
CObject
Klasa
Wykres hierarchii
CInternetConnection
Klasa
CHttpConnection
Klasa
CFtpConnection
Klasa
CGopherConnection
Klasa