Difference between revisions of "IPConnection.HTTPTranslateCookieRequest"

From SunFlurry wiki
Jump to: navigation, search
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:51, 7 February 2021

  HTTPTranslateCookieRequest (Работа с HTTP)
Объект:Объект IP
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку
Визуальность:Нет

Функция превращает запрос из поля Set-Cookie (к примеру, полученный функцией HTTPGetCookieRequest) в список, разделяя его на директивы, если запрос будет пустой строкой, функция возвращает пустое значение. Первым элементом списка всегда будет следовать значение cookie, наименования первого элемента будет совпадать с наименованием cookie. Последующие элементы будут содержать директивы запроса. Некоторые директивы могут не содержать текстового значения (к примеру, Secure, HttpOnly), для них значение элемента будет пустой строкой, для остальных значение будет заполнено значением директивы. Для директивы Expires значение будет автоматически переведено в тип данных дата и время, а для директивы Max-Age в число. Обычно функции, связанные с полями запроса cookie, применяются после получения ответа сервера, чтобы получить информацию о cookie, которые просит сохранить сервер. Вместо получения и обработки cookie с помощью функций HTTP, можно использовать объект cookie, информацию в который можно загрузить с помощью функции UpdateFromHeader. Важно: наименования cookie должны обрабатываться с учетом регистра.

Синтаксис

IPConnection.HTTPTranslateCookieRequest(<Строка запроса cookie (STRING)>):<Список директив запроса cookie (LIST)>

Аргументы

  • <Строка запроса cookie (STRING)> - ANSI строка в виде <CookieName>=<value>[; <opt1>; <opt2>...], которую, к примеру, можно получить с помощью функции HTTPGetCookieRequest или разобрав заголовок построчно.

Возвращаемое значение

Возвращает список с директивами и значением запроса cookie, либо пустое значение.

Примеры

Try
  If not TCP.HTTPReceive Then
    Exit;
  EndIf;
  aList:=TCP.HTTPTranslateCookieRequest(TCP.HTTPGetCookieRequest("session"));
  If _And(not isEmpty(aList),aList.Size()>0) Then
    Message("Значение запроса cookie ""session"": "+aList.Get(1));
    Message("Запрос cookie ""session"" имеет следующие директивы:");
    For i:=2 to aList.Size() Do
      Message("  "+aList.GetName(i)+": "+aList.Get(i));
    EndDo;
  EndIf;
  ...    
Finally
  TCP.Disconnect();
EndTry;