Class Response

Implements methods for HTTP responses.

All of the following examples assume that $response is an instance of this class.

Get header values

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 also get at the headers using object access. When getting headers with object access, you have to use case-sensitive header names:

$val = $response->headers['Content-Type'];

Get the response body

You can access the response body stream using:

$content = $response->getBody();

You can also use object access to get the string version of the response body:

$content = $response->body;

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->xml
// Get as json
$content = $response->json

If the response cannot be decoded, null will be returned.

Check the status code

You can access the response status code using:

$content = $response->getStatusCode();

You can also use object access:

$content = $response->code;
Cake\Http\Client\Message
Extended by Cake\Http\Client\Response implements Psr\Http\Message\ResponseInterface uses Zend\Diactoros\MessageTrait
Namespace: Cake\Http\Client
Location: Http/Client/Response.php

Inherited Constants

Properties summary

Inherited Magic Properties

Inherited Properties

Method Summary

Method Detail

__construct()source public

__construct( array $headers [] , string $body '' )

Constructor

Parameters

array $headers optional []
Unparsed headers.
string $body optional ''
The response body.

__get()source public

__get( string $name )

Read values as properties.

Parameters

string $name
Property name.

Returns

mixed

__isset()source public

__isset( string $name )

isset/empty test with -> syntax.

Parameters

string $name
Property name.

Returns

boolean

_decodeGzipBody()source protected

_decodeGzipBody( string $body )

Uncompress a gzip response.

Looks for gzip signatures, and if gzinflate() exists, the body will be decompressed.

Parameters

string $body
Gzip encoded body.

Returns

string

Throws

RuntimeException
When attempting to decode gzip content without gzinflate.

_getBody()source protected

_getBody( )

Provides magic __get() support.

Returns

array

_getCookies()source protected

_getCookies( )

Property accessor for $this->cookies

Returns

array
Array of Cookie data.

_getHeaders()source protected

_getHeaders( )

Provides magic __get() support.

Returns

array

_getJson()source protected

_getJson( )

Get the response body as JSON decoded data.

Returns

array|null

_getXml()source protected

_getXml( )

Get the response body as XML decoded data.

Returns

null|SimpleXMLElement

_parseHeaders()source protected

_parseHeaders( array $headers )

Parses headers if necessary.

  • Decodes the status code and reasonphrase.
  • Parses and normalizes header names + values.

Parameters

array $headers
Headers to parse.

body()source public

body( callable|null $parser null )

Get the response body.

By passing in a $parser callable, you can get the decoded response content back.

For example to get the json data as an object:

$body = $response->body('json_decode');

Parameters

callable|null $parser optional null

The callback to use to decode the response body.

Returns

mixed
The response body.

Overrides

Cake\Http\Client\Message::body()

buildCookieCollection()source protected

buildCookieCollection( )

Lazily build the CookieCollection and cookie objects from the response header

convertCookieToArray()source protected

convertCookieToArray( Cake\Http\Cookie\CookieInterface $cookie )

Convert the cookie into an array of its properties.

This method is compatible with older client code that expects date strings instead of timestamps.

Parameters

Cake\Http\Cookie\CookieInterface $cookie
Cookie object.

Returns

array
cookie( string|null $name null , boolean $all false )

Read single/multiple cookie values out.

Note This method will only provide access to cookies that were added as part of the constructor. If cookies are added post construction they will not be accessible via this method.

Deprecated

3.3.0 Use getCookie(), getCookieData() or getCookies() instead.

Parameters

string|null $name optional null

The name of the cookie you want. Leave null to get all cookies.

boolean $all optional false

Get all parts of the cookie. When false only the value will be returned.

Returns

mixed

encoding()source public

encoding( )

Get the encoding if it was set.

Deprecated

3.3.0 Use getEncoding() instead.

Returns

string|null

getCookie()source public

getCookie( string $name )

Get the value of a single cookie.

Parameters

string $name
The name of the cookie value.

Returns

string|null
Either the cookie's value or null when the cookie is undefined.

getCookieCollection()source public

getCookieCollection( )

Get the cookie collection from this response.

This method exposes the response's CookieCollection instance allowing you to interact with cookie objects directly.

Returns

Cake\Http\Cookie\CookieCollection

getCookieData()source public

getCookieData( string $name )

Get the full data for a single cookie.

Parameters

string $name
The name of the cookie value.

Returns

array|null
Either the cookie's data or null when the cookie is undefined.

getCookies()source public

getCookies( )

Get the all cookie data.

Returns

array
The cookie data

getEncoding()source public

getEncoding( )

Get the encoding if it was set.

Returns

string|null

getReasonPhrase()source public

getReasonPhrase( )

Returns

string
The current reason phrase.

getStatusCode()source public

getStatusCode( )

Returns

integer
The status code.

header()source public

header( string|null $name null )

Read single/multiple header value(s) out.

Deprecated

3.3.0 Use getHeader() and getHeaderLine() instead.

Parameters

string|null $name optional null

The name of the header you want. Leave null to get all headers.

Returns

mixed

Null when the header doesn't exist. An array will be returned when getting all headers or when getting a header that had multiple values set. Otherwise a string will be returned.


isOk()source public

isOk( )

Check if the response was OK

Returns

boolean

isRedirect()source public

isRedirect( )

Check if the response had a redirect status code.

Returns

boolean

statusCode()source public

statusCode( )

Get the status code from the response

Deprecated

3.3.0 Use getStatusCode() instead.

Returns

integer

version()source public

version( )

Get the HTTP version used.

Deprecated

3.3.0 Use getProtocolVersion()

Returns

string

withStatus()source public

withStatus( integer $code , string $reasonPhrase '' )

Parameters

integer $code
The status code to set.
string $reasonPhrase optional ''
The status reason phrase.

Returns


$this A copy of the current object with an updated status code.

Methods inherited from Cake\Http\Client\Message

cookies()source public

cookies( )

Get all cookies

Returns

array

headers()source public

headers( )

Get all headers

Deprecated

3.3.0 Use getHeaders() instead.

Returns

array

Properties detail

$_exposedPropertiessource

protected array

Map of public => property names for __get()

[
    'cookies' => '_getCookies',
    'body' => '_getBody',
    'code' => 'code',
    'json' => '_getJson',
    'xml' => '_getXml',
    'headers' => '_getHeaders',
]

$_jsonsource

protected array

Cached decoded JSON data.

$_xmlsource

protected SimpleXMLElement

Cached decoded XML data.

$codesource

protected integer

The status code of the response.

$cookiessource

protected Cake\Http\Cookie\CookieCollection

Cookie Collection instance

$reasonPhrasesource

protected string

The reason phrase for the status code

© 2005–2017 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/3.4/class-Cake.Http.Client.Response.html