Содержание
HttpBlobPost(Url, Post : String) : Blob
Выполнить HTTP POST запрос и получить двоичный файл
Функция HttpBlobPost используется для запросов к WEB-приложениям, и получения от них двоичных файлов.
Функция не использует Proxy-сервера и не использует настроек браузера. Функция не использует Cookies. Поддерживается только ответ сервера "HTTP/1.1 200", а заголовок ответа игнорируется. Функция передает данные только способом application/x-www-form-urlencoded, поэтому из за необходимой замены некоторых символов на специальные последовательности (например ? на %3F) возможно троекратное увеличение трафика.
Если выполнить запрос не удалось, то пользователю выводится окно с предложением повторить запрос или прервать выполнение программы. В последнем случае происходит исключение.
Пример:<?xml version="1.0" encoding="windows-1251"?> <Module Type="Form" Name="form1" Description="Форма1"> <Form Width="384" Height="144" Icon="-1"> <edit Image="-1" Left="8" Top="8" Width="128" Height="125" Name="Img" Border="16" DataType="Image" Readonly="1" VerticalAlign="1" Align="1" Anchors="15" Readonly="1"/> <edit Caption="Высота:" Image="-1" AutoSize="1" Left="152" Top="11" Width="41" Height="13" DataType="String" Readonly="1" Anchors="4" Readonly="1"/> <edit Caption="64" Image="-1" Left="240" Top="8" Width="128" Height="21" Name="Width" Border="16" DataType="Integer" Anchors="4"/> <edit Caption="Ширина:" Image="-1" AutoSize="1" Left="152" Top="35" Width="42" Height="13" DataType="String" Readonly="1" Anchors="4" Readonly="1"/> <edit Caption="64" Image="-1" Left="240" Top="32" Width="128" Height="21" Name="Height" Border="16" DataType="Integer" Anchors="4"/> <button Caption="Запрос" Image="-1" Left="240" Top="64" Width="128" Height="24" Name="Refresh" Anchors="4"/> </Form> <Programm Language="Similar Pascal"> Procedure OnRefreshClick; Begin If Width<=0 Or Width>256 Then Width.Error('Ширина должна быть в пределах 1..256'); If Height<=0 Or Height>256 Then Height.Error('Высота должна быть в пределах 1..256'); Img := HttpBlobPost('http://localhost/my.php', 'width='+QuoteHttp(Width)+'&height='+QuoteHttp(Height)); End; </Programm> </Module>Пример my.php:
<? header("Content-Type: image/jpeg"); $width = $HTTP_POST_VARS['width']; $height = $HTTP_POST_VARS['height']; $img = imagecreatetruecolor($width, $height); $bgColor = imagecolorallocate($img, mt_rand(100,255), mt_rand(100,255), mt_rand(100,255)); $fgColor = imagecolorallocate($img, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); imagefilledrectangle($img, 0, 0, $width-1, $height-1, $bgColor); imagerectangle($img, 0, 0, $width-1, $height-1, $fgColor); imageline($img, 0, 0, $width-1, $height-1, $fgColor); imageline($img, $width-1, 0, 0, $height-1, $fgColor); imagejpeg($img, null, 90); ?>Результат:
Смотри функции QuoteHttp, HttpPost.