IPConnection.HTTPSetOperation
| HTTPSetOperation (Работа с HTTP) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция устанавливает операцию в заголовке запроса или ответа на запрос. Примеры операций для запросов: GET /questions/2262/question HTTP/1.0, PUT /questions/2262/update HTTP/1.1. Пример операции ответа на запрос: HTTP/1.1 200 OK. Операция всегда следует первой строкой в заголовке http пакета.
Синтаксис
IPConnection.HTTPSetOperation(<Операция (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;