Метод OpenRequest создает запрос для передачи его серверу WWW. После того, как запрос создан, его можно модифицировать при помощи метода AddRequestHeaders класса CHttpFile, а затем передать серверу, вызвав метод SendRequest, входящий в состав класса CHttpFile.
Определены два варианта метода OpenRequest. Ниже мы привели для вас их прототипы:
CHttpFile* OpenRequest(
LPCTSTR pstrVerb,
LPCTSTR pstrObjectName,
LPCTSTR pstrReferer = NULL,
DWORD dwContext = 1,
LPCTSTR* pstrAcceptTypes = NULL,
LPCTSTR pstrVersion = NULL,
DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT
);
CHttpFile* OpenRequest(
int nVerb,
LPCTSTR pstrObjectName,
LPCTSTR pstrReferer = NULL,
DWORD dwContext = 1,
LPCTSTR* pstrAcceptTypes = NULL,
LPCTSTR pstrVersion = NULL,
DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT
);
Представленные варианты метода OpenRequest отличаются только типом первого параметра. Этот параметр определяет команду, которая передается в запросе.
В первом варианте метода OpenRequest параметр pstrVerb должен содержать указатель на строку с командой в текстовом виде. Если использовать в качестве pstrVerb значение NULL, то по умолчанию передается команда "GET". Вы можете использовать команды, предоставленные в следующей таблице:
| Команды | Описание | ||
| POST | Передать запрос на сервер, содержащий дополнительные данные. Это может быть, например, обращение к расширению CGI или ISAPI в котором ему передаются данные из формы, заполненной пользователем | ||
| GET | Запрос на получение объекта с сервера WWW | ||
| HEAD | Запрос на получение информации об объекте с сервера WWW. Сам объект не принимается | ||
| PUT | Записать данный объект на сервер по определенному адресу URL | ||
| LINK | Устанавливает связь между ресурсом, идентифцируемом адресом URL и другими ресурсами | ||
| DELETE | Предлагает серверу удалить ресурс по данному адресу URL | ||
| UNLINK | Удалляет связи ресурса с указанным адресом URL |
¨ Отметим, что обычно используются только команды GET, HEAD и PUT
|
Команда |
Константа |
|
POST |
HTTP_VERB_POST |
|
GET |
HTTP_VERB_GET |
|
HEAD |
HTTP_VERB_HEAD |
|
PUT |
HTTP_VERB_PUT |
|
LINK |
HTTP_VERB_LINK |
|
DELETE |
HTTP_VERB_DELETE |
|
UNLINK |
HTTP_VERB_UNLINK |
|
Флаг |
Описание |
|
INTERNET_FLAG_RELOAD |
Указывает на необходимость загрузки запрашиваемого объекта или информации непосредственно с сервера Internet, даже в том случае если данная информация уже содержится в кэше |
|
INTERNET_FLAG_DONT_CACHE |
Предупреждает запись полученной информации к кэш |
|
INTERNET_FLAG_MAKE_PERSISTENT |
Записывает полученную с сервера информацию в кэш и запрещает ее удаление во время операции очистки кэша |
|
INTERNET_FLAG_SECURE |
Использует семантику защищенных транзакций (secure transaction semantics) |
|
INTERNET_FLAG_NO_AUTO_REDIRECT |
Отменяет автоматическое перенаправление запросов методом SendRequest класса CHttpFile. Используется только в запросах по протоколу HTTP |