Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Интepнeт 
Общие - HTTP_Get

HTTP_Get
Краткое описание
   Компонент предназначен для закачки файлов по протоколу HTTP средствами , встроенными в Windows
Параметры
  • URL - Определяет URL закачиваемого файла или страницы HTML по-умолчанию
  • FileName - Определяет имя файла для сохранения скаченного файла по-умолчанию
  • Wait - True - ожидать окончания закачки, False - создать отдельный поток и вернуть управление основной программе
  • Proxy - Адрес прокси сервера
  • ProxyUsername - Имя пользователя
  • ProxyPassword - Пароль
  • Length - Размер блока закачиваемых данных при докачке файла
  • Методы
  • doDownload - Начинает закачку файла, при пустом имени файла сохранения содержит файловый поток в выходном событии onDownload
  • doStop - Преждевременно останавливает закачку (без возможности докачки)
  • GetURLSize - Получение размера файла (URL) с сервера
  • События
  • onStatus - Выдаёт в поток количество принятых данных в байтах
  • onDownload - Событие происходит в случае успешной закачки файла (при пустом имени файла содержит файловый поток)
  • onURLSize - Событие происходит в случае успешного получения размера файла и выдает в поток этот размер в байтах (см. GetURLSize)
  • onStop - Событие происходит всякий раз при завершении закачки
  • Свойства
  • Busy - Содержит 1, если компонент занят, и 0 - если своболен
  • Данные
  • URL - Определяет URL закачиваемого файла или страницы HTML
  • FileName - Определяет имя файла для сохранения скаченного файла
  • Position - Если позиция скачивания отлична от 0, то компонент начинает закачку файла с заданной позиции
  • Length - Размер блока закачиваемых данных при докачке файла
  • Proxy - Адрес прокси сервера
  • ProxyUsername - Имя пользователя
  • ProxyPassword - Пароль
  • Примеры
       Пример показывает как с помощью данного элемента закачать содержимое указанного URL и отобразить в редакторе текста

    
    Add(MainForm,2953706,63,98)
    {
    Caption="Downloader"
    }
    Add(Button,6980498,112,98)
    {
    Left=5
    Top=10
    Width=120
    Caption="download"
    link(onClick,3284981:doDownload,[])
    }
    Add(Memo,14028361,266,84)
    {
    Left=5
    Top=35
    Width=375
    Height=230
    ScrollBars=3
    }
    Add(Edit,9797136,161,49)
    {
    Left=140
    Top=10
    Width=240
    Text="http://hiasm.com"
    }
    Add(HTTP_Get,3284981,161,98)
    {
    link(onDownload,825475:doConvert,[])
    link(URL,9797136:Text,[])
    }
    Add(Convertor,825475,210,105)
    {
    Mode=11
    link(onResult,14028361:doText,[])
    }
       Следующий пример показывает, как правильно загружать картинку из Internet и отображать ее на форме

    
    Add(MainForm,2953706,63,98)
    {
    Caption="Image Downloader"
    }
    Add(Button,6980498,112,98)
    {
    Left=5
    Top=10
    Width=120
    Caption="download"
    link(onClick,3284981:doDownload,[])
    }
    Add(Edit,9797136,161,49)
    {
    Left=140
    Top=10
    Width=240
    Text="http://hiasm.com/tpl/small.png"
    }
    Add(HTTP_Get,3284981,161,98)
    {
    link(onDownload,16365162:doEvent1,[])
    link(URL,9797136:Text,[])
    }
    Add(PNG,11521707,252,91)
    {
    Point(doLoadFromStream)
    Point(doBitmap)
    link(onBitmap,6965738:doLoad,[])
    }
    Add(Hub,16365162,217,105)
    {
    link(onEvent1,11521707:doLoadFromStream,[])
    link(onEvent2,11521707:doBitmap,[])
    }
    Add(Image,6965738,301,91)
    {
    Left=10
    Top=45
    Width=370
    Height=220
    ViewStyle=0
    }

       Следующий пример показывает, как загрузить файл из Internet и сохранить его на диске.

    
    Add(MainForm,91136,77,70)
    {
    Left=312
    Top=284
    Width=358
    Height=136
    Caption="Пример HTTP_Get"
    Position=1
    }
    Add(Label,64310,406,126)
    {
    Left=100
    Top=40
    Width=35
    Font=[Arial,8,0,0,1]
    Caption="Status"
    }
    Add(Label,21437,406,189)
    {
    Left=140
    Top=40
    Width=100
    Font=[Arial,8,0,0,1]
    Caption="0Kb/0Kb"
    }
    Add(Hub,59971,133,175)
    {
    OutCount=3
    link(onEvent1,13152092:doExecute,[(165,181)(165,132)])
    link(onEvent2,27891:GetURLSize,[(182,188)(182,209)])
    link(onEvent3,27891:doDownload,[])
    }
    Add(Math,98541,287,126)
    {
    OpType=3
    Op2=1024
    ResultType=0
    link(onResult,78676:doValue,[])
    }
    Add(FormatStr,19075,350,189)
    {
    Mask="%2Kb/%1Kb"
    link(onFString,21437:doText,[])
    link(Str1,78676:Value,[])
    }
    Add(Label,5398,77,126)
    {
    Left=5
    Top=10
    Width=35
    Font=[Arial,8,0,0,1]
    Caption="URL"
    }
    Add(Button,53054,77,175)
    {
    Left=5
    Top=40
    Width=75
    Font=[Arial,8,0,0,1]
    Caption="Download"
    link(onClick,59971:doEvent1,[])
    }
    Add(Memory,78676,350,126)
    {
    }
    Add(Math,45476,287,189)
    {
    OpType=3
    Op2=1024
    ResultType=0
    link(onResult,19075:doString,[])
    }
    Add(Edit,70643,217,70)
    {
    Left=45
    Top=5
    Width=300
    Height=21
    Font=[Arial,8,0,0,1]
    Text="http://www.hiasm.com/xf/attach/share/zlib.zip"
    }
    Add(Button,17110,77,231)
    {
    Left=260
    Top=40
    Width=75
    Font=[Arial,8,0,0,1]
    Caption="Stop"
    link(onClick,27891:doStop,[(205,237)(205,202)])
    }
    Add(HTTP_Get,27891,217,189)
    {
    link(onStatus,45476:doOperation,[])
    link(onDownload,9067067:doMessage,[(263,202)(263,244)])
    link(onURLSize,98541:doOperation,[(275,209)(275,132)])
    link(URL,70643:Text,[])
    link(FileName,11384887:Var2,[])
    }
    Add(SDialog,13152092,175,126)
    {
    link(onExecute,2066818:doValue,[])
    }
    Add(Memory,2066818,224,126)
    {
    link(onData,1616597:doText,[(268,132)(268,76)])
    }
    Add(Message,9067067,280,238)
    {
    Caption="Download OK!"
    link(Message,11384887:Var3,[(286,173)])
    }
    Add(GetDataEx,11384887,224,168)
    {
    link(Data,2066818:Value,[])
    }
    Add(Label,1616597,287,70)
    {
    Left=5
    Top=75
    Width=330
    Height=30
    Font=[MS Sans Serif,8,0,8388608,1]
    Caption="_"
    AutoSize=1
    }


    Замечания
       Поскольку для закачки данных по указанной ссылке используется не прямое обращение к сетевым функциям TCP соединения, а встроенный инструментарий верхнего уровня Windows, то работа данного элемента зависит от настроек Обозревателя(Internet Explorer) в системе и имеет с ним общие cache, cookie и сессии.

      Для адресов, содержащих символы национальных кодировок может потребоваться преобразование передаваемого компоненту URL в UTF8.

    Обновление элемента: [svn]HTTP_Get.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...