/** * wrapper to send a request to the server and return a string with the response body. * * @param RokUpdater_Uri $uri The URI to the resource to request. * @param string $data Either an associative array or a string to be sent with the request. * @param array $headers An array of request headers to send with the request. * @param integer $timeout Read timeout in seconds. * @param string $userAgent The optional user agent string to send with the request. * * @throws ProtocolBuffers_Exception * @throws Exception * @return string */ public function request(RokUpdater_Uri $uri, $data = null, array $headers = array(), $timeout = null, $userAgent = null) { JLog::add(sprintf('%s request called for %s', get_class($this), $uri->getAbsoluteUri()), JLog::DEBUG, 'rokupdater'); JLog::add(sprintf('%s request data passed %s', get_class($this), $data), JLog::DEBUG, 'rokupdater'); if ($uri->getScheme() == self::HTTPS_SCHEME && !$this->isSSLSupported() && array_key_exists('http_fallback', $this->options)) { JLog::add(sprintf('%s : SSL is not supported in cURL and fallback is set', get_class($this)), JLog::DEBUG, 'rokupdater'); if ($this->options['http_fallback']) { $uri->setScheme(self::HTTP_SCHEME); if ((int) $uri->getPort() == self::HTTPS_PORT) { $uri->setPort(self::HTTP_PORT); } } else { JLog::add('SSL is not supported in cURL and fallback not set', JLog::INFO, 'rokupdater'); throw new ProtocolBuffers_Exception(sprintf('%s Transport implmentation does not support SSL', get_class($this)), ProtocolBuffers_TransportFactory::PROTOCOL_BUFFERS_ERROR_SSL_STREAM_NOT_REGISTERED); } } JLog::add(sprintf('%s sending request to %s', get_class($this), $uri->getAbsoluteUri()), JLog::INFO, 'rokupdater'); return $this->transportRequest($uri, $data, $headers, $timeout, $userAgent); }
/** * @param RokUpdater_Uri $fromUri * @param RokUpdater_Uri $toUri * @param array<RokUpdater_Uri_Components> * * @return RokUpdater_Uri */ private static function copySpecificComponents(RokUpdater_Uri $fromUri, RokUpdater_Uri $toUri, array $components) { foreach ($components as $component) { switch ($component) { case RokUpdater_Uri_Components::SCHEME: $toUri->setScheme($fromUri->getScheme()); break; case RokUpdater_Uri_Components::USERINFO: $toUri->setUserInfo($fromUri->getUserInfo()); break; case RokUpdater_Uri_Components::HOST: $toUri->setHost($fromUri->getHost()); break; case RokUpdater_Uri_Components::PORT: $toUri->setPort($fromUri->getPort()); break; case RokUpdater_Uri_Components::PATH: $toUri->setPath($fromUri->getPath()); break; case RokUpdater_Uri_Components::QUERY: $toUri->setQuery($fromUri->getQuery()); break; case RokUpdater_Uri_Components::FRAGMENT: $toUri->setFragment($fromUri->getFragment()); break; } } return $toUri; }