Модуль для взаимодействия по протоколу http(s)

WEB-приложение Сведение отчетности (26.07.2026) | (одним файлом) (cсылка)
Модуль для взаимодействия по протоколу http(s)
Модуль для взаимодействия по протоколам http(s) представлен в поставляемом пользовательском приложении "ParusAppServerProvider", в виде COM-сервера. В вышеуказанном модуле реализован COM-объект с ProgID ParusAppServerProvider.Provider, реализующий следующий интерфейс:
    01IProvider = interface(IDispatch)
    02    ['{5CC36760-E292-44AA-B542-A32865828DAC}']
    03    function CreateTempFileName(const Extension: WideString): WideString; safecall;
    04    function CreateBinaryData: IDispatch; safecall;
    05    function DownloadData(const Host: WideString; const Url: WideString;
    06      const UserName: WideString; const Password: WideString; NegotiateAuth: WordBool;
    07      PostData: OleVariant; const PostContentType: WideString; PostDataIsBinary: WordBool;
    08      CanCache: WordBool; NewSession: WordBool; TimeOut: Integer): IDispatch; safecall;
    09    function JSONEscape(const Value: WideString): WideString; safecall;
    10    function JSONUnEscape(const Value: WideString): WideString; safecall;
    11  end;
Функция CreateTempFileName возвращает сгенерированное системой имя временного файла с расширением, переданным в параметре Extension. Функция CreateBinaryData создает пустой объект, реализующий интерфейс IBinaryData (описан ниже). Функция DownloadData осуществляет обращение к указанному ресурсу по протоколу http (https), и возвращает ответ сервера в виде объекта, реализующего интерфейс IBinaryData. Параметр Host определяет http-сервер, параметр Url - Url, к которому будет происходить обращение. Параметры UserName и Password определяют имя пользователя и пароль, если http-сервер требует авторизовать пользователя. Параметр NegotiateAuth устанавливает режим аутентификации. (Basic или Negotiate (NTLM)). Параметры PostData, PostContentType и PostDataIsBinary определяют содержимое тела POST-запроса (если не определено, функция отправит GET-запрос). Источник может быть Объектом, реализующим интерфейс IStream Объектом, реализующим интерфейс ISequentialStream Строкой Параметр CanCache позволяет использовать локальный кеш http-ответов. Параметр NewSession требует принудительного создания новой сессии при вызове функции. Параметр TimeOut определяет максимальное время ожидания ответа в секундах. Функция JSONEscape возвращает строку в формате JSON, полученую путем конвертации переданной строки в формат JSON. Функция JSONUnEscape возвращает строку, полученную путем расконвертации переданной JSON строки. Интерфейс IBinaryData представляет набор двоичных данных:
    01IBinaryData = interface(IDispatch)
    02    ['{8A9F7CB3-230A-4048-B938-852CBF6ADB2D}']
    03    procedure Append(const Src: OleVariant);
    04    procedure Load(const Src: OleVariant);
    05    procedure Save(const Dst: OleVariant);
    06    function Size: Cardinal;
    07    procedure AppendData(Data: Pointer; DataSize: Cardinal);
    08    procedure SetData(Data: Pointer; DataSize: Cardinal);
    09    procedure GetData(Data: Pointer);
    10    function ToString(Encoding: WideString): WideString;
    11    procedure FromString(Data: OleVariant);
    12    procedure AppendString(Data: OleVariant);
    13    function ToBase64: WideString;
    14    procedure FromBase64(Data: OleVariant);
    15  end;
Процедура Load загружает двоичные данные из переданного источника. Источник может быть Объектом, реализующим интерфейс IStream Объектом, реализующим интерфейс ISequentialStream Строкой, содержащей имя файла Процедура Append добавляет двоичные данные из переданного источника. Источник может быть Объектом, реализующим интерфейс IStream Объектом, реализующим интерфейс ISequentialStream Строкой, содержащей имя файла Процедура Save сохраняет двоичные данные в переданный приемник. Приемник может быть Объектом, реализующим интерфейс IStream Объектом, реализующим интерфейс ISequentialStream Строкой, содержащей имя файла Функция ToString переводит данные в строку. Байты, содержашиеся в объекте, будут рассматриваться как содержащие строку в кодировке, заданной параметром Encoding. По умолчанию используется кодировка UTF-8 Процедура FromString загружает данные из строки, переданной в параметре Data, перекодировав ее в кодировку UTF-8 Процедура AppendString добавляет данные из строки, переданной в параметре Data, перекодировав ее в кодировку UTF-8 Функция ToBase64 возвращает строку, полученную путем кодирования в формат Base64, данных содержащихся в объекте Процедура FromBase64 загружает данные из строки, переданной в параметре Data, раскодировав ее из формата Base64