IPConnection.HTTPGetHeaderField
| HTTPGetHeaderField (Работа с HTTP) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция получает поле по его наименованию из заголовка полученного запроса или ответа на запрос. Если поле не существует, функция возвращает пустое значение.
Синтаксис
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;