Difference between revisions of "IPConnection.HTTPCompress"
1>Admin (→Примеры) |
m (1 revision imported) |
(No difference)
|
Revision as of 15:17, 16 April 2021
HTTPCompress (Работа со сжатыми HTTP-пакетами) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция выполняет компрессию информации для отправки в теле HTTP-пакета. Обычно используется алгоритм gzip. При отправке сжатого пакета, в заголовке необходимо указать Content-Encoding: gzip
(для алгоритма сжатия gzip). Функция может использоваться не только для информации, полученной по HTTP, но и для произвольной информации, единственным ограничением может служить факт, что в архив, полученный таким образом, не записывается имя файла (архив с пустым именем файла). Функция может быть вызвана непосредственно из интерфейса.
Синтаксис
IPConnection.HTTPCompress(<Строка или буфер для компрессии (STRING,BUFFER)>,<Алгоритм компрессии (INT)>=0,<Уровень компрессии (INT)>=5):<Результат компрессии (STRING,BUFFER)>
Аргументы
<Строка или буфер для компрессии (STRING,BUFFER)>
- ANSI-строка или буфер для компрессии. Если аргументом является строка, результат будет возвращен, как строка, если аргументом является буфер, результат будет возвращен как буфер.<Алгоритм компрессии (INT)>
- (необязательный аргумент) Аргумент задает алгоритм компрессии. На данный момент возможно только значение 0, которое отвечает за алгоритм gzip (являющийся оберткой алгоритма deflate)<Уровень компрессии (INT)>
- (необязательный аргумент) Задает уровень компрессии, являющийся числом от 0 (компрессия отсутствует) и 1 (минимальный уровень компрессии) до 9 (максимальный уровень). По умолчанию используется средний уровень 5. Чем выше уровень компрессии, тем медленнее будет работать функция, при этом результат компрессии может занимать чуть немного меньше места.
Возвращаемое значение
Возвращается строку или буфер в зависимости от типа первого аргумента.
Примеры
... //Стр -- Текст ответа (тело пакета) Стр:=IPConnection.HTTPCompress(Стр); аДата:=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","text/html; charset=UTF-8"); TCP.HTTPSetHeaderField("Content-Encoding","gzip"); TCP.HTTPSetBody(Стр); TCP.HTTPSend();