Модуль для взаимодействия по протоколам http(s) представлен в поставляемом пользовательском приложении "ParusAppServerProvider", в виде COM-сервера.
В вышеуказанном модуле реализован COM-объект с ProgID ParusAppServerProvider.Provider, реализующий следующий интерфейс:
01 IProvider = 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 представляет набор двоичных данных:
01 IBinaryData = 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