Implements methods for HTTP responses.
All of the following examples assume that $response
is an instance of this class.
Header names are case-insensitive, but normalized to Title-Case when the response is parsed.
$val = $response->getHeaderLine('content-type');
Will read the Content-Type header. You can get all set headers using:
$response->getHeaders();
You can access the response body stream using:
$content = $response->getBody();
You can get the body string using:
$content = $response->getStringBody();
If your response body is in XML or JSON you can use special content type specific accessors to read the decoded data. JSON data will be returned as arrays, while XML data will be returned as SimpleXML nodes:
// Get as XML $content = $response->getXml() // Get as JSON $content = $response->getJson()
If the response cannot be decoded, null will be returned.
You can access the response status code using:
$content = $response->getStatusCode();
string
'DELETE'
string
'GET'
string
'HEAD'
string
'OPTIONS'
string
'PATCH'
string
'POST'
string
'PUT'
string
'TRACE'
int
202
int
201
int
302
int
301
int
203
int
204
int
200
int
303
int
307
array
The array of cookies in the response.
array
Cached decoded JSON data.
\SimpleXMLElement
Cached decoded XML data.
int
The status code of the response.
\Cake\Http\Cookie\CookieCollection
Cookie Collection instance
array
Map of normalized header name to original name used to register header.
array
List of all registered headers, as key => array of values.
string
The reason phrase for the status code
Lazily build the CookieCollection and cookie objects from the response header
Return an instance with the specified header appended with the given value.
Return an instance with the provided header, replacing any existing values of any headers with the same case-insensitive name.
Return an instance with the specified status code and, optionally, reason phrase.
__construct(array $headers, string $body)
Constructor
array
$headers optional Unparsed headers.
string
$body optional The response body.
_decodeGzipBody(string $body)
Uncompress a gzip response.
Looks for gzip signatures, and if gzinflate() exists, the body will be decompressed.
string
$body Gzip encoded body.
string
RuntimeException
_getBody()
Provides magic __get() support.
string
_getCookies()
Property accessor for $this->cookies
array
Array of Cookie data.
_getHeaders()
Provides magic __get() support.
string[]
_getJson()
Get the response body as JSON decoded data.
mixed
_getXml()
Get the response body as XML decoded data.
\SimpleXMLElement|null
_parseHeaders(array $headers)
Parses headers if necessary.
array
$headers Headers to parse.
buildCookieCollection()
Lazily build the CookieCollection and cookie objects from the response header
cookies()
Get all cookies
array
getBody()
Gets the body of the message.
\Psr\Http\Message\StreamInterface
Returns the body as a stream.
getCookie(string $name)
Get the value of a single cookie.
string
$name The name of the cookie value.
string|array|null
Either the cookie's value or null when the cookie is undefined.
getCookieCollection()
Get the cookie collection from this response.
This method exposes the response's CookieCollection instance allowing you to interact with cookie objects directly.
\Cake\Http\Cookie\CookieCollection
getCookieData(string $name)
Get the full data for a single cookie.
string
$name The name of the cookie value.
array|null
Either the cookie's data or null when the cookie is undefined.
getCookies()
Get the all cookie data.
array
The cookie data
getEncoding()
Get the encoding if it was set.
string|null
getHeader(mixed $header)
Retrieves a message header value by the given case-insensitive name.
This method returns an array of all the header values of the given case-insensitive header name.
If the header does not appear in the message, this method MUST return an empty array.
string
$header Case-insensitive header field name.
string[]
An array of string values as provided for the given header. If the header does not appear in the message, this method MUST return an empty array.
getHeaderLine(mixed $name)
Retrieves a comma-separated string of the values for a single header.
This method returns all of the header values of the given case-insensitive header name as a string concatenated together using a comma.
NOTE: Not all header values may be appropriately represented using comma concatenation. For such headers, use getHeader() instead and supply your own delimiter when concatenating.
If the header does not appear in the message, this method MUST return an empty string.
string
$name Case-insensitive header field name.
string
A string of values as provided for the given header concatenated together using a comma. If the header does not appear in the message, this method MUST return an empty string.
getHeaders()
Retrieves all message headers.
The keys represent the header name as it will be sent over the wire, and each value is an array of strings associated with the header.
// Represent the headers as a string foreach ($message->getHeaders() as $name => $values) { echo $name . ": " . implode(", ", $values); } // Emit headers iteratively: foreach ($message->getHeaders() as $name => $values) { foreach ($values as $value) { header(sprintf('%s: %s', $name, $value), false); } }
array
Returns an associative array of the message's headers. Each key MUST be a header name, and each value MUST be an array of strings.
getJson()
Get the response body as JSON decoded data.
mixed
getProtocolVersion()
Retrieves the HTTP protocol version as a string.
The string MUST contain only the HTTP version number (e.g., "1.1", "1.0").
string
HTTP protocol version.
getReasonPhrase()
Gets the response reason phrase associated with the status code.
Because a reason phrase is not a required element in a response status line, the reason phrase value MAY be null. Implementations MAY choose to return the default RFC 7231 recommended reason phrase (or those listed in the IANA HTTP Status Code Registry) for the response's status code.
string
The current reason phrase.
getStatusCode()
Gets the response status code.
The status code is a 3-digit integer result code of the server's attempt to understand and satisfy the request.
int
The status code.
getStringBody()
Get the response body as string.
string
getXml()
Get the response body as XML decoded data.
\SimpleXMLElement|null
hasHeader(mixed $header)
Checks if a header exists by the given case-insensitive name.
string
$header Case-insensitive header name.
bool
Returns true if any header names match the given header name using a case-insensitive string comparison. Returns false if no matching header name is found in the message.
isOk()
Check if the response status code was in the 2xx/3xx range
bool
isRedirect()
Check if the response had a redirect status code.
bool
isSuccess()
Check if the response status code was in the 2xx range
bool
withAddedHeader(mixed $header, mixed $value)
Return an instance with the specified header appended with the given value.
Existing values for the specified header will be maintained. The new value(s) will be appended to the existing list. If the header did not exist previously, it will be added.
This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the new header and/or value.
string
$header Case-insensitive header field name to add.
string|string[]
$value Header value(s).
static
Laminas\Diactoros\Exception\InvalidArgumentException
withBody(\Psr\Http\Message\StreamInterface $body)
Return an instance with the specified message body.
The body MUST be a StreamInterface object.
This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return a new instance that has the new body stream.
\Psr\Http\Message\StreamInterface
$body Body.
static
Laminas\Diactoros\Exception\InvalidArgumentException
withHeader(mixed $header, mixed $value)
Return an instance with the provided header, replacing any existing values of any headers with the same case-insensitive name.
While header names are case-insensitive, the casing of the header will be preserved by this function, and returned from getHeaders().
This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the new and/or updated header and value.
string
$header Case-insensitive header field name.
string|string[]
$value Header value(s).
static
Laminas\Diactoros\Exception\InvalidArgumentException
withProtocolVersion(mixed $version)
Return an instance with the specified HTTP protocol version.
The version string MUST contain only the HTTP version number (e.g., "1.1", "1.0").
This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the new protocol version.
string
$version HTTP protocol version
static
withStatus(mixed $code, mixed $reasonPhrase)
Return an instance with the specified status code and, optionally, reason phrase.
If no reason phrase is specified, implementations MAY choose to default to the RFC 7231 or IANA recommended reason phrase for the response's status code.
This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated status and reason phrase.
int
$code The status code to set.
string
$reasonPhrase optional The status reason phrase.
static
A copy of the current object with an updated status code.
InvalidArgumentException
withoutHeader(mixed $header)
Return an instance without the specified header.
Header resolution MUST be done without case-sensitivity.
This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that removes the named header.
string
$header Case-insensitive header field name to remove.
static
The array of cookies in the response.
array
Cached decoded JSON data.
array
Cached decoded XML data.
\SimpleXMLElement
The status code of the response.
int
Cookie Collection instance
\Cake\Http\Cookie\CookieCollection
Map of normalized header name to original name used to register header.
array
List of all registered headers, as key => array of values.
array
The reason phrase for the status code
string
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Http.Client.Response.html