From: Chuck Hagenbuch Date: Tue, 15 Sep 2009 02:47:00 +0000 (-0400) Subject: start adding response objects X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=51bf8e0b31cb7075d9ddf423e2f012cebe554c68;p=horde.git start adding response objects --- diff --git a/framework/Http/lib/Horde/Http/Response/Base.php b/framework/Http/lib/Horde/Http/Response/Base.php index 1826d4fbe..317f0af40 100644 --- a/framework/Http/lib/Horde/Http/Response/Base.php +++ b/framework/Http/lib/Horde/Http/Response/Base.php @@ -14,7 +14,7 @@ * @category Horde * @package Horde_Http */ -class Horde_Http_Response_Base +abstract class Horde_Http_Response_Base { /** * Fetched URI @@ -53,7 +53,7 @@ class Horde_Http_Response_Base { $this->uri = $uri; $this->_stream = $stream; - $this->_parseHeaders($headers); + $this->headers = $this->_parseHeaders($headers); } /** @@ -69,6 +69,8 @@ class Horde_Http_Response_Base $headers = explode("\n", $headers); } + $parsedHeaders = array(); + $lastHeader = null; foreach ($headers as $headerLine) { // stream_get_meta returns all headers generated while processing a @@ -78,7 +80,7 @@ class Horde_Http_Response_Base if (preg_match('/^HTTP\/(\d.\d) (\d{3})/', $headerLine, $httpMatches)) { $this->httpVersion = $httpMatches[1]; $this->code = (int)$httpMatches[2]; - $this->headers = array(); + $parsedHeaders = array(); $lastHeader = null; } @@ -91,25 +93,27 @@ class Horde_Http_Response_Base $headerName = strtolower($m[1]); $headerValue = $m[2]; - if (isset($this->headers[$headerName])) { - if (!is_array($this->headers[$headerName])) { - $this->headers[$headerName] = array($this->headers[$headerName]); + if (isset($parsedHeaders[$headerName])) { + if (!is_array($parsedHeaders[$headerName])) { + $parsedHeaders[$headerName] = array($parsedHeaders[$headerName]); } - $this->headers[$headerName][] = $headerValue; + $parsedHeaders[$headerName][] = $headerValue; } else { - $this->headers[$headerName] = $headerValue; + $parsedHeaders[$headerName] = $headerValue; } $lastHeader = $headerName; } elseif (preg_match("|^\s+(.+)$|", $headerLine, $m) && !is_null($lastHeader)) { - if (is_array($this->headers[$lastHeader])) { - end($this->headers[$lastHeader]); - $this->headers[$lastHeader][key($this->headers[$lastHeader])] .= $m[1]; + if (is_array($parsedHeaders[$lastHeader])) { + end($parsedHeaders[$lastHeader]); + $parsedHeaders[$lastHeader][key($parsedHeaders[$lastHeader])] .= $m[1]; } else { - $this->headers[$lastHeader] .= $m[1]; + $parsedHeaders[$lastHeader] .= $m[1]; } } } + + return $parsedHeaders; } /** diff --git a/framework/Http/lib/Horde/Http/Response/Curl.php b/framework/Http/lib/Horde/Http/Response/Curl.php index e69de29bb..7b2eb5fea 100644 --- a/framework/Http/lib/Horde/Http/Response/Curl.php +++ b/framework/Http/lib/Horde/Http/Response/Curl.php @@ -0,0 +1,50 @@ + + * @license http://opensource.org/licenses/bsd-license.php BSD + * @category Horde + * @package Horde_Http + */ + +/** + * @author Chuck Hagenbuch + * @license http://opensource.org/licenses/bsd-license.php BSD + * @category Horde + * @package Horde_Http + */ +class Horde_Http_Response_Curl extends Horde_Http_Response_Base +{ + /** + * Info on the request + * @var array + */ + protected $_curlinfo = array(); + + /** + */ + public function __construct($curlresult, $curlinfo) + { + echo $curlresult; + $this->parseResponse($curlresult, $curlinfo); + } + + /** + * + */ + public function parseResponse($curlresult, $curlinfo) + { + $this->_curlinfo = $curlinfo; + } + + /** + * Return the body of the HTTP response. + * + * @return string HTTP response body. + */ + public function getBody() + { + return $this->_body; + } +} diff --git a/framework/Http/package.xml b/framework/Http/package.xml index 42fe6224c..460eee269 100644 --- a/framework/Http/package.xml +++ b/framework/Http/package.xml @@ -40,6 +40,13 @@ http://pear.php.net/dtd/package-2.0.xsd"> + + + + + + + @@ -65,6 +72,11 @@ http://pear.php.net/dtd/package-2.0.xsd"> + + + + +