Difference between revisions of "IPConnection.HTTPSetCookie"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
HTTPSetCookie (Работа с HTTP) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция позволяет добавить информацию в поле заголовка 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();