Содержание
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.
справка