Класс CHttpConnection
Управление подключением к HTTP-серверу.
Синтаксис
class CHttpConnection : public CInternetConnection
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CHttpConnection::CHttpConnection | Создает объект CHttpConnection . |
Открытые методы
Имя | Описание |
---|---|
CHttpConnection::OpenRequest | Открывает HTTP-запрос. |
Замечания
HTTP — это один из трех протоколов интернет-сервера, реализованных классами WinInet MFC.
CHttpConnection
Класс содержит конструктор и одну функцию-член OpenRequest, которая управляет подключениями к серверу с протоколом HTTP.
Для взаимодействия с HTTP-сервером необходимо сначала создать экземпляр CInternetSession, а затем создать объект CHttpConnection . Объект никогда не создается напрямую CHttpConnection
. Вместо этого вызовите CInternetSession::GetHttpConnection, который создает CHttpConnection
объект и возвращает указатель на него.
Дополнительные сведения о CHttpConnection
работе с другими классами Интернета MFC см. в статье "Интернет-программирование с помощью WinInet". Дополнительные сведения о подключении к серверам с помощью двух других поддерживаемых интернет-протоколов, gopher и FTP см. в классах CGopherConnection и CFtpConnection.
Иерархия наследования
CHttpConnection
Требования
Заголовок: afxinet.h
CHttpConnection::CHttpConnection
Эта функция-член вызывается для создания CHttpConnection
объекта.
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);
Параметры
pSession
Указатель на объект CInternetSession .
hConnected
Дескриптор подключения к Интернету.
pstrServer
Указатель на строку, содержащую имя сервера.
dwContext
Идентификатор контекста CInternetConnection
для объекта. Дополнительные сведения о dwContext см. в разделе "Примечания ".
nPort
Номер, определяющий порт Интернета для этого подключения.
pstrUserName
Указатель на строку, завершающуюся значением NULL, которая указывает имя пользователя для входа. Если значение NULL, значение по умолчанию является анонимным.
pstrPassword
Указатель на строку, завершающуюся значением NULL, которая указывает пароль, используемый для входа. Если для pstrPassword и pstrUserName задано значение NULL, анонимный пароль по умолчанию — это имя электронной почты пользователя. Если pstrPassword имеет значение NULL или пустая строка, но pstrUserName не имеет значения NULL, используется пустой пароль. В следующей таблице описывается поведение четырех возможных параметров pstrUserName и pstrPassword:
pstrUserName | pstrPassword | Имя пользователя, отправленное на FTP-сервер | Пароль, отправленный на FTP-сервер |
---|---|---|---|
NULL или " | NULL или " | "анонимный" | Имя электронной почты пользователя |
Строка, не допускающая значение NULL | NULL или " | pstrUserName | " " |
NULL | Строка, не допускающая значение NULL | ОШИБКА | ОШИБКА |
Строка, не допускающая значение NULL | Строка, не допускающая значение NULL | pstrUserName | pstrPassword |
dwFlags
Любое сочетание INTERNET_FLAG_*
флагов. Сведения о значениях dwFlags см. в таблице в разделе "Примечания CHttpConnection::OpenRequest".
Замечания
Вы никогда не создаете напрямую CHttpConnection
. Скорее, создается объект путем вызова CInternetSession::GetHttpConnection.
CHttpConnection::OpenRequest
Вызовите эту функцию-член, чтобы открыть 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);
Параметры
pstrVerb
Указатель на строку, содержащую команду, используемую в запросе. Если значение NULL, используется метод GET.
pstrObjectName
Указатель на строку, содержащую целевой объект указанной команды. Эта строка обычно представляет собой имя файла, исполняемый модуль или описатель поиска.
pstrRefererer
Указатель на строку, указывающую адрес (URL-адрес) документа, из которого был получен URL-адрес запроса (pstrObjectName). Если значение NULL, заголовок HTTP не указан.
dwContext
Идентификатор контекста OpenRequest
для операции. Дополнительные сведения о dwContext см. в разделе "Примечания".
ppstrAcceptTypes
Указатель на массив указателей LPCTSTR на строки, указывающие на типы контента, принятые клиентом. Если ppstrAcceptTypes имеет значение NULL, серверы интерпретируют, что клиент принимает только документы типа "text/*" (то есть только текстовые документы и не рисунки или другие двоичные файлы). Тип контента эквивалентен переменной CGI CONTENT_TYPE, которая определяет тип данных для запросов, которые имеют присоединенные сведения, например HTTP POST и PUT.
pstrVersion
Указатель на строку, определяющую версию HTTP. Если значение NULL, используется http/1.0.
dwFlags
Любое сочетание флагов INTERNET_ FLAG_*. Описание возможных значений dwFlags см. в разделе "Примечания".
nVerb
Число, связанное с типом HTTP-запроса. Может применяться один из перечисленных ниже типов.
Тип HTTP-запроса | значение 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 |
Возвращаемое значение
Указатель на запрошенный объект CHttpFile .
Замечания
DwFlags может быть одним из следующих вариантов :
Флаг Интернета | Description |
---|---|
INTERNET_FLAG_RELOAD | Принудительно загружает запрошенный файл, объект или список каталогов с исходного сервера, а не из кэша. |
INTERNET_FLAG_DONT_CACHE | Не добавляет возвращаемую сущность в кэш. |
INTERNET_FLAG_MAKE_PERSISTENT | Добавляет возвращаемую сущность в кэш в качестве постоянной сущности. Это означает, что очистка стандартного кэша, проверка согласованности или сборка мусора не могут удалить этот элемент из кэша. |
INTERNET_FLAG_SECURE | Использует семантику безопасных транзакций. Он преобразуется в использование SSL/PCT и имеет смысл только в HTTP-запросах |
INTERNET_FLAG_NO_AUTO_REDIRECT | Используется только с протоколом HTTP, указывает, что перенаправления не должны обрабатываться автоматически в CHttpFile::SendRequest. |
Переопределите dwContext
значение по умолчанию, чтобы задать идентификатор контекста для выбранного значения. Идентификатор контекста связан с этой конкретной операцией объекта, созданного CHttpConnection
объектом CInternetSession . Значение возвращается в CInternetSession::OnStatusCallback , чтобы предоставить состояние операции, с которой она определена. Дополнительные сведения об идентификаторе контекста см. в статье Internet First Steps: WinInet .
Исключения могут возникать с этой функцией.
См. также
Класс CInternetConnection
Диаграмма иерархии
Класс CInternetConnection
Класс CHttpFile