Использование механизмов подключения интернет сервисов при помощи группы классов JHttp
Подключение класса JHttp
jimport( 'joomla.http.http' ); jimport( 'joomla.transport.curl' );
Для задействования этой структуры классов надо осуществить примерно следующее
jimport( 'joomla.http.http' );
jimport( 'joomla.transport.curl' );
$opt = new JRegistry;
$trans = new JHttpTransportCurl($opt);
$http = new JHttp($opt,$trans);
$response = $http->post("https://www.avangard.ru/iacq/h2h/reg",array('xml'=>$xml));
$result = $response->body;
В Joomla у нас есть пакет Http для отправки HTTP-запроса, включая CURL. Но этот класс не может настроить некоторые опции, мы хотим, поэтому мы можем с помощью CurlHelper для обработки запроса наш обычай.
// Создать экземпляр объекта JHttp по умолчанию. $http = new JHttp; $options = new JRegistry; $transport = new JHttpTransportStream($options); // Создать 'потоковый' транспорт. $http = new JHttp($options, $transport);
Или с помощью JHttpFactory
// Создать экземпляр объекта JHttp умолчанию.
$http = JHttpFactory::getHttp();
// Вызов HEAD-запроса.
$response = $http->head('http://example.com');
// Подготовка данных .
$data = array('make' => 'Holden', model => 'EJ-Special');
// Вызов запроса POST.
$response = $http->post('http://api.example.com/cars/1', $data);
// IВызов запроса PUT.
$response = $http->put('http://api.example.com/cars/1', $data);
// Вызов запроса DELETE.
$response = $http->delete('http://api.example.com/cars/1');
Объект ответа
var_dump($response->code);
Код ответа содержится в свойстве «code». Смотреть http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
var_dump($response->headers);
Заголовки ответа включаются в качестве ассоциативного массива в свойстве «headers».
var_dump($response->body);
Тело ответа (не применимо для метода HEAD) включен в свойстве «body».