Использование механизмов подключения интернет сервисов при помощи группы классов 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».