Создание Внешних Запросов С Помощью Httpfactory (Joomla)

Обычно, когда мы хотим сделать внешний запрос, мы используем для этой цели cURL. Настройка cURL довольно громоздка, и в принципе сложно держать в голове все необходимые настройки.

Также существуют серверы без поддержки cURL, а значит ваш код работать не будет. В таких случаях вам понадобится запасной вариант. Используя Joomla, довольно легко настроить cURL и все необходимые резервные соединения в одной строке кода.

  
  
  
  
  
   

use Joomla\CMS\Http\HttpFactory; $http = HttpFactory::getHttp(null, ['curl', 'stream']);

Этот код вызывает драйвер Joomla Http, который разрешает исходящие запросы к внешним URL-адресам.

Этот драйвер использует драйверы транспорта в указанном порядке: в данном случае сначала cURL (если доступен), а затем поток.

В Joomla 3 «из коробки» доступны 3 драйвера транспорта:

  • КУЛЬ
  • разъем
  • транслировать


Создать звонок

HttpFactory в Joomla 3 поддерживает следующие типы HTTP-запросов:
  • удалить
  • получать
  • голова
  • параметры
  • пластырь
  • почта
  • помещать
  • след
Все эти методы используют одни и те же аргументы:
  1. URL — URL вызова, конечная точка.

  2. Данные — массив данных, отправляемых в запросе.

  3. Заголовки — заголовки http-запроса.

    Может использоваться, например, для авторизации.

  4. Таймаут – установка определенного таймаута для запроса.

Пример POST-запроса

$answer = $http->post($url);

POST-запрос с данными

$answer = $http->post($url, ['foo' => 'bar']);



Добавление параметров запроса

HttpFactory может добавлять параметры конфигурации для драйвера транспорта.

Для этого необходимо создать массив, где ключом является опция, а значением — значение опции соответственно.

Ниже приведены примеры вариантов cURL. Полный список на PHP-документация .



$curlOptions = array(); $curlOptions[CURLOPT_SSL_VERIFYHOST] = false;

Далее мы добавляем массив с опциями с помощью метода setOption().



$http->setOption('transport.curl', $curlOptions);



Токены аутентификации в заголовках запросов

Joomla может взаимодействовать с внешним миром, получая или отправляя данные.

Многим службам требуются заголовки запросов с токенами аутентификации.

Более подробная информация в Обзор методов и протоколов аутентификации в веб-приложениях .

Добавить нужные заголовки очень просто.

Создаем массив с необходимыми заголовками, а затем указываем его при создании Http-запроса.



if(!empty($access_token) && !empty($user_key)){ $headers = array( 'Authorization' => 'AccessToken '.

$access_token, 'Content-Type' => 'application/json', 'charset' => 'UTF-8', 'X-User-Authorization'=> 'Basic '.

$user_key ); if(!is_null($data)){ $headers['Content-Length'] = strlen($data); }

Теги: #api #разработка веб-сайтов #php #http #интеграция #joomla #CMS #http заголовки #интеграция сервисов #http запрос

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.