Метод QueryInfo позволяет узнать ответ сервера на переданный ему запрос и заголовки самого запроса. Вы можете использовать данный метод после передачи запроса серверу с помощью метода SendRequest и или после того как вы открыли объект на сервере Internet с помощью метода OpenURL.
В состав класса входят три варианта метода QueryInfo, отличающихся набором параметров. Вы можете использовать тот метод, который наиболее подходит для выполнения ваших задач:
BOOL QueryInfo(
DWORD dwInfoLevel,
LPVOID lpvBuffer,
LPDWORD lpdwBufferLength,
LPDWORD lpdwIndex = NULL
) const;
BOOL QueryInfo(
DWORD dwInfoLevel,
CString& str,
LPDWORD dwIndex = NULL
) const;
BOOL QueryInfo(
DWORD dwInfoLevel,
SYSTEMTIME* pSysTime,
LPDWORD dwIndex = NULL
) const;
Тип информации, запрашиваемой методом QueryInfo, определяется параметром dwInfoLevel, одинаковым у всех трех реализаций метода. В качестве этого параметра следует указать комбинацию атрибута и флага, определяющего тип получаемой информации:
| Флаг | Назначение | ||
| HTTP_QUERY_CUSTOM | Определяет имя заголовка и записывает его в буфер lpvBuffer | ||
| HTTP_QUERY_FLAG_REQUEST_HEADERS | Данный флаг позволяет узнать заголовок запроса который был передан на сервер | ||
| HTTP_QUERY_FLAG_SYSTEMTIME | Некоторые заголовки содержат дату и время. Чтобы не утруждать себя разбором строки с датой и временем следует указать данный флаг и воспользоваться третьим вариантом метода QueryInfo, который сразу занесет эти данные в структуру типа SYSTEMTIME. | ||
| HTTP_QUERY_FLAG_NUMBER | Для тех заголовков, которые имеют числовые значения вы можете воспользоваться флагом HTTP_QUERY_FLAG_NUMBER. В этом случае запрашиваемые данные будут получены в виде 32-битового числа. |
В следующей таблице перечислены возможные атрибуты, которые можно указывать в параметре dwInfoLevel:
| Значения параметра lpdwIndex и dwIndex | |
| HTTP_QUERY_MIME_VERSION | |
| HTTP_QUERY_CONTENT_TYPE | |
| HTTP_QUERY_CONTENT_TRANSFER_ENCODING | |
| HTTP_QUERY_CONTENT_ID | |
| HTTP_QUERY_CONTENT_DESCRIPTION | |
| HTTP_QUERY_CONTENT_LENGTH | |
| HTTP_QUERY_ALLOWED_METHODS | |
| HTTP_QUERY_PUBLIC_METHODS | |
| HTTP_QUERY_DATE | |
| HTTP_QUERY_EXPIRES | |
| HTTP_QUERY_LAST_MODIFIED | |
| HTTP_QUERY_MESSAGE_ID | |
| HTTP_QUERY_URI | |
| HTTP_QUERY_DERIVED_FROM | |
| HTTP_QUERY_LANGUAGE | |
| HTTP_QUERY_COST | |
| HTTP_QUERY_WWW_LINK | |
| HTTP_QUERY_PRAGMA | |
| HTTP_QUERY_VERSION | |
| HTTP_QUERY_STATUS_CODE | |
| HTTP_QUERY_STATUS_TEXT | |
| HTTP_QUERY_RAW_HEADERS | |
| HTTP_QUERY_RAW_HEADERS_CRLF |