IPConnection.HTTPSetCookie

From SunFlurry wiki
Revision as of 09:26, 24 April 2020 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  HTTPSetCookie (Работа с HTTP)
Объект:Объект IP
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку
Визуальность:Нет

Функция позволяет добавить информацию в поле заголовка Cookie. Функция обычно используется при формировании запроса на сервер для передачи сохраненных ранее переменных cookie. При использовании объекта cookie, нужный массив переменных можно загрузить в заголовок функцией CopyToHeader. Если переменная cookie уже существует в заголовке, данная функция заменяет ее значение. При отсутствии второго аргумента, переменная будет удалена из поля Cookie. Важно понимать, что функция работает для HTTP пакетов клиента и передает переменные cookie, которые были получены в пакете от сервера в полях заголовка Set-Cookie, сервер мог передать несколько таких полей, поле Cookie всегда одно в заголовке и содержит все переменные cookie в одном значении. Поле имеет следующий формат: Cookie: <Имя переменной 1>=<Значение переменной 1>[; <Имя переменной 2>=<Значение переменной 2>...]. Поэтому значение переменных cookie должны содержать только ASCII символы (ограничение формата заголовка HTTP пакетов), не должны содержать символов с кодами <32, и не должны содержать следующие символы: ;, ,, ", \ и пробел (знак = разрешен).

Синтаксис

IPConnection.HTTPSetCookie(<Наименование cookie (STRING)>,<Значение cookie (STRING)>)

Аргументы

  • <Наименование cookie (STRING)> - ANSI строка с наименованием переменной cookie. Наименования записываются с учетом регистра. AAAAA и aaaaa это два разных наименования, задающие разные переменные.
  • <Значение cookie (STRING)> - ANSI строка со значением переменной. Если аргумент отсутствует, переменная будет удалена.

Примеры

...
Сессия:=ГенерацияНомераСессии();
TCP.HTTPClear(3);
TCP.HTTPSetOperation("HTTP/1.0 200 OK");
TCP.HTTPSetHeaderField("Date",FormatDate(аДата,"N, DD M YYYY hh:tt:ss ""GMT""","en"));
TCP.HTTPSetHeaderField("Server","SF http server");
TCP.HTTPSetHeaderField("Last-Modified",FormatDate(аДата,"N, DD M YYYY hh:tt:ss ""GMT""","en"));
TCP.HTTPSetHeaderField("Cache-Control","no-store");
TCP.HTTPSetHeaderField("Connection","close");
TCP.HTTPSetCookie("session",Сессия);
TCP.HTTPSend();