IPConnection.HTTPGetHeaderField

From SunFlurry wiki
Jump to: navigation, search
  HTTPGetHeaderField (Работа с HTTP)
Объект:Объект IP
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку
Визуальность:Нет

Функция получает поле по его наименованию из заголовка полученного запроса или ответа на запрос. Если поле не существует, функция возвращает пустое значение.

Синтаксис

IPConnection.HTTPGetHeaderField(<Имя поля (STRING)>):<Значение поля или пустое значение (STRING)>

Аргументы

  • <Имя поля (STRING)> - Аргумент задает наименование поля. Наименования полей задаются с учетом регистра.

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

Возвращает ANSI строку, значение поля.

Примеры

//Фрагмент получает http пакет на сервере и отправляет ответ
Try
  If not TCP.HTTPReceiveHeader Then
    Exit;
  EndIf;
  Repeat
    аДлина:=Number(TCP.HTTPGetHeaderField("Content-Length"));
    тЗапрос:="";
    If (аДлина>0)And(аДлина<16384) Then
      тЗапрос:=TCP.ReceiveStrRaw(аДлина);
    EndIf;
    //?<пар>=<зн>&...
    СтрОп:=DecodeHTMLString(TCP.HTTPGetOperation);
    Message("req: "+СтрОп);
    TearStr(СтрОп,"?");
    СтрОп:=TearStr(СтрОп," ");
    СтрОп:="&"+СтрОп+"&";

    //Получаем и декодируем параметры из СтрОп
    ...

    //Создаем картинку-ответ в тОтвет
    ...
      
  Until 1;
    
  тОтвет:=тОтвет.SaveToString("png");
  аДата:=GMTDate();
  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("Content-Length",Length(тОтвет));
  TCP.HTTPSetHeaderField("Cache-Control","no-store");
  TCP.HTTPSetHeaderField("Connection","close");
  TCP.HTTPSetHeaderField("Content-Type","image/png");
  TCP.HTTPSetBody(тОтвет);
  TCP.HTTPSend();
Finally
  Стр:=PopError();
  If not isEmpty(Стр) Then
    Message(Стр,"!");
  EndIf;
  SuppressException();
  TCP.Disconnect();
EndTry;