Difference between revisions of "IPConnection.HTTPSend"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
HTTPSend (Работа с HTTP) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция выполняет отправку подготовленного http пакета (запроса или ответа на запрос) для установленного TCP соединения. Отсылаются и заголовок и тело http пакета. Если пакет не был отослан успешно, функция вызовет исключение.
Синтаксис
IPConnection.HTTPSend():<Удачное выполнение (INT)>
Возвращаемое значение
Возвращает 1, если пакет отослан успешно, иначе возвращает 0.
Примеры
//Фрагмент получает 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;