Разработка приложений для Internet

       

Метод AddRequestHeaders


Метод AddRequestHeaders добавляет один или несколько заголовков к запросу HTTP, который затем будет передаваться на сервер. Данный метод только подготавливает запрос HTTP, для выполнения фактической передачи запроса серверу необходимо воспользоваться методом SendRequest класса CHttpFile.

В классе CHttpFile определены два метода AddRequestHeaders, которые имеют различный набор параметров:

BOOL AddRequestHeaders(

   LPCTSTR pstrHeaders,

   DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW,

   int dwHeadersLen = -1

);

 

BOOL AddRequestHeaders(

   CString& str,

   DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW

);

Строка с заголовками, которые надо добавить к запросу, указывается методу AddRequestHeaders через параметр pstrHeaders, как указатель типа LPCTSTR или через строку str класса CString. В первом случае вы должны использовать строку, закрытую нулем, или специально указать длину строки при помощи параметра dwHeadersLen. Если вы добавляете к запросу сразу несколько заголовков, то они должны быть разделены парой символов - CR и LF.



Параметр dwFlags позволяет изменить способ добавления заголовков к запросу. Для этого вы должны указать в качестве этого параметра один из флагов, представленных в следующей таблице:

Флаг

Описание

HTTP_ADDREQ_FLAG_COALESCE

Объединить заголовки, которое имеют одинаковые имена

HTTP_ADDREQ_FLAG_REPLACE

Замещает заголовок с указанным именем. Если методу AddRequestHeaders передается только название заголовка, без значения, то соответствующий заголовок удаляется из запроса. Если вы используете этот режим добавления, то вы можете указать методу AddRequestHeaders только один заголовок.

Совместно с этим флагом может использоваться флаг HTTP_ADDREQ_FLAG_ADD

HTTP_ADDREQ_FLAG_ADD_IF_NEW

Добавляет новый заголовок только в том случае, если заголовок с таким именем отсутствует. В противном случае метод AddRequestHeaders завершается с ошибкой

HTTP_ADDREQ_FLAG_ADD

Добавляет заголовок только в том случае, если заголовок с таким именем отсутствует. Может использоваться совместно с флагом HTTP_ADDREQ_FLAG_REPLACE

В случае успешного завершения метод AddRequestHeaders возвращает ненулевое значение. Если метод завершился с ошибкой, то он возвращает ноль, а причину ошибки можно узнать с помощью функции GetLastError.



Содержание раздела