Difference between revisions of "IPConnection.HTTPGetHeaderField"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
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;