*/ class Varien_Http_Client extends Zend_Http_Client { /** * Internal flag to allow decoding of request body * * @var bool */ protected $_urlEncodeBody = true; public function __construct($uri = null, $config = null) { $this->config['useragent'] = 'Varien_Http_Client'; parent::__construct($uri, $config); } protected function _trySetCurlAdapter() { if (extension_loaded('curl')) { $this->setAdapter(new Varien_Http_Adapter_Curl()); } return $this; } public function request($method = null) { $this->_trySetCurlAdapter(); return parent::request($method); } /** * Change value of internal flag to disable/enable custom prepare functionality * * @param bool $flag * @return Varien_Http_Client */ public function setUrlEncodeBody($flag) { $this->_urlEncodeBody = $flag; return $this; } /** * Adding custom functionality to decode data after * standard prepare functionality * * @return string */ protected function _prepareBody() { $body = parent::_prepareBody(); if (!$this->_urlEncodeBody && $body) { $body = urldecode($body); $this->setHeaders('Content-length', strlen($body)); } return $body; } }