Difference between revisions of "IPConnection.HTTPGetOperation"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
HTTPGetOperation (Работа с HTTP) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция получает операцию из заголовка полученного запроса или ответа на запрос. Примеры возможных операций для запросов: GET /questions/2262/question HTTP/1.0
, PUT /questions/2262/update HTTP/1.1
. Пример возможной операции ответа на запрос: HTTP/1.1 200 OK
. Операция всегда следует первой строкой в заголовке http пакета.
Синтаксис
IPConnection.HTTPGetOperation():<Операция (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;