Создание клиента HTTP
Чтобы создать HTTP-клиент, необходимо создать экземпляр OpenEdge.Net.HTTP.IHttpClient, используя метод Build () и свойство Client класса ClientBuilder.
В первую очередь следует описать переменную с типом OpenEdge.Net.HTTP.IHttpClient:
define variable <name> as OpenEdge.Net.HTTP.IHttpClient no-undo.
Затем создать экземпляр класса с присвоением этой переменной:
<name> = ClientBuilder:Build():Client.
Здесь,
- ClientBuilder – это класс, который содержит методы для создания клиента;
- Build () – это метод, создающий клиента;
- Client – это свойство метода, которое возвращает работоспособный экземпляр IHTTPClient.
Класс ClientBuilder также предоставляет другие методы, которые позволяют определять поведение клиента и указывать другие параметры.
Вот некоторые из них:
- UsingLibrary(<IHTTPClientLibrary>) – этот метод позволяет вам использовать собственную реализацию IHTTPClient. Вы можете использовать этот метод, если вам нужно расширить возможности библиотеки по умолчанию.
- KeepCookies(<ICookieJar>) – этот метод позволяет хранить и использовать куки на стороне клиента.
- SetRequestTimeout(<dec>) – этот метод позволяет указать значение тайм-аута запроса.
- SetRetryPause(<dec>) – этот метод позволяет указать паузу, после которой должна быть выполнена повторная попытка.
- SetNumRetries(<int>) – этот метод позволяет указать количество повторных попыток в случае истечения времени ожидания запроса.
Некоторые REST-сервисы поддерживают куки. Файлы cookie – это небольшие фрагменты данных, отправляемые сервером клиенту. Файлы cookie используются для поддержания состояния или контекста между клиентом и сервером. Клиент с сохранением состояния сохраняет куки и отправляет их обратно на сервер во время транзакций.
Если REST-сервер поддерживает файлы cookie, и если вы хотите включить куки в своём приложении OpenEdge, то необходимо использовать метод KeepCookies при создании клиента. Этот метод сохраняет файлы cookie и отправляет их обратно на сервер для каждого запроса, который вы делаете. Файлы cookie клиентом OpenEdge ABL удаляются сразу же после завершения транзакции, поэтому вам не нужно управлять ими вручную.
Пример:
moHttpClient = ClientBuilder:Build():KeepCookies(CookieJarBuilder:Build():CookieJar):Client.