Source for file Response.php
Documentation is available at Response.php
* Copyright (c) 2007-2011, Servigistics, Inc.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of Servigistics, Inc. nor the names of
* its contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
* @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
* @author Donovan Jimenez <djimenez@conduit-it.com>
* Represents the required pieces of an HTTP response provided by HTTP transport
* implementations and then consumed by the Apache_Solr_Response class which provides
* Status Messages indexed by Status Code
* Obtained from: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
static private $_defaultStatusMessages =
array(
// Specific to PHP Solr Client
0 =>
"Communication Error",
101 =>
"Switching Protocols",
203 =>
"Non-Authoritative Information",
206 =>
"Partial Content",
300 =>
"Multiple Choices",
301 =>
"Moved Permanently",
307 =>
"Temporary Redirect",
402 =>
"Payment Required",
405 =>
"Method Not Allowed",
407 =>
"Proxy Authentication Required",
408 =>
"Request Timeout",
411 =>
"Length Required",
412 =>
"Precondition Failed",
413 =>
"Request Entity Too Large",
414 =>
"Request-URI Too Long",
415 =>
"Unsupported Media Type",
416 =>
"Request Range Not Satisfiable",
417 =>
"Expectation Failed",
500 =>
"Internal Server Error",
501 =>
"Not Implemented",
503 =>
"Service Unavailable",
504 =>
"Gateway Timeout",
505 =>
"HTTP Version Not Supported"
* Get the HTTP status message based on status code
$statusCode = (int)
$statusCode;
if (isset
(self::$_defaultStatusMessages[$statusCode]))
return self::$_defaultStatusMessages[$statusCode];
* The response's HTTP status code
* The response's HTTP status message
* The response's mime type
* The response's character encoding
* Construct a HTTP transport response
* @param integer $statusCode The HTTP status code
* @param string $contentType The VALUE of the Content-Type HTTP header
* @param string $responseBody The body of the HTTP response
public function __construct($statusCode, $contentType, $responseBody)
// set the status code, make sure its an integer
$this->_statusCode = (int)
$statusCode;
// lookup up status message based on code
$this->_statusMessage =
self::getDefaultStatusMessage($this->_statusCode);
// set the response body, it should always be a string
$this->_responseBody = (string)
$responseBody;
// parse the content type header value for mimetype and encoding
// first set default values that will remain if we can't find
// what we're looking for in the content type
$this->_mimeType =
"text/plain";
$this->_encoding =
"UTF-8";
// now break apart the header to see if there's character encoding
$contentTypeParts =
explode(';', $contentType, 2);
if (isset
($contentTypeParts[0]))
$this->_mimeType =
trim($contentTypeParts[0]);
if (isset
($contentTypeParts[1]))
// we have a second part, split it further
$contentTypeParts =
explode('=', $contentTypeParts[1]);
if (isset
($contentTypeParts[1]))
$this->_encoding =
trim($contentTypeParts[1]);
* Get the status code of the response
return $this->_statusCode;
* Get the status message of the response
return $this->_statusMessage;
* Get the mimetype of the response body
* Get the charset encoding of the response body.
* Get the raw response body
return $this->_responseBody;
Documentation generated on Wed, 04 May 2011 11:01:16 -0400 by phpDocumentor 1.4.3