Class Request

Implements methods for HTTP requests.

Used by Cake\Http\Client to contain request information for making requests.

Namespace: Cake\Http\Client

Constants summary

  • string
    METHOD_DELETE
    'DELETE'
  • string
    METHOD_GET
    'GET'
  • string
    METHOD_HEAD
    'HEAD'
  • string
    METHOD_OPTIONS
    'OPTIONS'
  • string
    METHOD_PATCH
    'PATCH'
  • string
    METHOD_POST
    'POST'
  • string
    METHOD_PUT
    'PUT'
  • string
    METHOD_TRACE
    'TRACE'
  • int
    STATUS_ACCEPTED
    202
  • int
    STATUS_CREATED
    201
  • int
    STATUS_FOUND
    302
  • int
    STATUS_MOVED_PERMANENTLY
    301
  • int
    STATUS_NON_AUTHORITATIVE_INFORMATION
    203
  • int
    STATUS_NO_CONTENT
    204
  • int
    STATUS_OK
    200
  • int
    STATUS_SEE_OTHER
    303
  • int
    STATUS_TEMPORARY_REDIRECT
    307

Properties summary

  • $_cookies protected
    array

    The array of cookies in the response.

  • $headerNames protected
    array

    Map of normalized header name to original name used to register header.

  • $headers protected
    array

    List of all registered headers, as key => array of values.

Method Summary

  • __construct() public

    Constructor

  • addHeaders() protected

    Add an array of headers to the request.

  • cookies() public

    Get all cookies

  • getBody() public

    Gets the body of the message.

  • getHeader() public

    Retrieves a message header value by the given case-insensitive name.

  • getHeaderLine() public

    Retrieves a comma-separated string of the values for a single header.

  • getHeaders() public

    Retrieves all message headers.

  • getMethod() public

    Retrieves the HTTP method of the request.

  • getProtocolVersion() public

    Retrieves the HTTP protocol version as a string.

  • getRequestTarget() public

    Retrieves the message's request target.

  • getUri() public

    Retrieves the URI instance.

  • hasHeader() public

    Checks if a header exists by the given case-insensitive name.

  • setContent() protected

    Set the body/payload for the message.

  • withAddedHeader() public

    Return an instance with the specified header appended with the given value.

  • withBody() public

    Return an instance with the specified message body.

  • withHeader() public

    Return an instance with the provided header, replacing any existing values of any headers with the same case-insensitive name.

  • withMethod() public

    Return an instance with the provided HTTP method.

  • withProtocolVersion() public

    Return an instance with the specified HTTP protocol version.

  • withRequestTarget() public

    Create a new instance with a specific request-target.

  • withUri() public

    Returns an instance with the provided URI.

  • withoutHeader() public

    Return an instance without the specified header.

Method Detail

__construct() public

__construct(string $url, string $method, array $headers, mixed $data)

Constructor

Provides backwards compatible defaults for some properties.

Parameters

string $url optional

The request URL

string $method optional

The HTTP method to use.

array $headers optional

The HTTP headers to set.

array|string|null $data optional

The request body to use.

addHeaders() protected

addHeaders(array $headers)

Add an array of headers to the request.

Parameters

array $headers

The headers to add.

cookies() public

cookies()

Get all cookies

Returns

array

getBody() public

getBody()

Gets the body of the message.

Returns

\Psr\Http\Message\StreamInterface

Returns the body as a stream.

getHeader() public

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.

Parameters

string $header

Case-insensitive header field name.

Returns

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() public

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.

Parameters

string $name

Case-insensitive header field name.

Returns

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() public

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);
    }
}

Returns

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.

getMethod() public

getMethod()

Retrieves the HTTP method of the request.

Returns

string

Returns the request method.

getProtocolVersion() public

getProtocolVersion()

Retrieves the HTTP protocol version as a string.

The string MUST contain only the HTTP version number (e.g., "1.1", "1.0").

Returns

string

HTTP protocol version.

getRequestTarget() public

getRequestTarget()

Retrieves the message's request target.

Retrieves the message's request-target either as it will appear (for clients), as it appeared at request (for servers), or as it was specified for the instance (see withRequestTarget()).

In most cases, this will be the origin-form of the composed URI, unless a value was provided to the concrete implementation (see withRequestTarget() below).

If no URI is available, and no request-target has been specifically provided, this method MUST return the string "/".

getUri() public

getUri()

Retrieves the URI instance.

This method MUST return a UriInterface instance.

Returns

\Psr\Http\Message\UriInterface

Returns a UriInterface instance representing the URI of the request, if any.

Links

hasHeader() public

hasHeader(mixed $header)

Checks if a header exists by the given case-insensitive name.

Parameters

string $header

Case-insensitive header name.

Returns

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.

setContent() protected

setContent(mixed $content)

Set the body/payload for the message.

Array data will be serialized with Cake\Http\FormData, and the content-type will be set.

Parameters

string|array $content

The body for the request.

Returns

$this

withAddedHeader() public

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.

Parameters

string $header

Case-insensitive header field name to add.

string|string[] $value

Header value(s).

Returns

static

Throws

Laminas\Diactoros\Exception\InvalidArgumentException
for invalid header names or values.

withBody() public

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.

Parameters

\Psr\Http\Message\StreamInterface $body

Body.

Returns

static

Throws

Laminas\Diactoros\Exception\InvalidArgumentException
When the body is not valid.

withHeader() public

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.

Parameters

string $header

Case-insensitive header field name.

string|string[] $value

Header value(s).

Returns

static

Throws

Laminas\Diactoros\Exception\InvalidArgumentException
for invalid header names or values.

withMethod() public

withMethod(mixed $method)

Return an instance with the provided HTTP method.

While HTTP method names are typically all uppercase characters, HTTP method names are case-sensitive and thus implementations SHOULD NOT modify the given string.

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 changed request method.

Parameters

string $method

Case-insensitive method.

Throws

Laminas\Diactoros\Exception\InvalidArgumentException
for invalid HTTP methods.

withProtocolVersion() public

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.

Parameters

string $version

HTTP protocol version

Returns

static

withRequestTarget() public

withRequestTarget(mixed $requestTarget)

Create a new instance with a specific request-target.

If the request needs a non-origin-form request-target — e.g., for specifying an absolute-form, authority-form, or asterisk-form — this method may be used to create an instance with the specified request-target, verbatim.

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 changed request target.

Parameters

string $requestTarget

Throws

Laminas\Diactoros\Exception\InvalidArgumentException
if the request target is invalid.

Links

http://tools.ietf.org/html/rfc7230#section-2.7
(for the various request-target forms allowed in request messages)

withUri() public

withUri(\Psr\Http\Message\UriInterface $uri, mixed $preserveHost)

Returns an instance with the provided URI.

This method will update the Host header of the returned request by default if the URI contains a host component. If the URI does not contain a host component, any pre-existing Host header will be carried over to the returned request.

You can opt-in to preserving the original state of the Host header by setting $preserveHost to true. When $preserveHost is set to true, the returned request will not update the Host header of the returned message -- even if the message contains no Host header. This means that a call to getHeader('Host') on the original request MUST equal the return value of a call to getHeader('Host') on the returned request.

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 UriInterface instance.

Parameters

\Psr\Http\Message\UriInterface $uri

New request URI to use.

bool $preserveHost optional

Preserve the original state of the Host header.

Links

withoutHeader() public

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.

Parameters

string $header

Case-insensitive header field name to remove.

Returns

static

Property Detail

$_cookies protected

The array of cookies in the response.

Type

array

$headerNames protected

Map of normalized header name to original name used to register header.

Type

array

$headers protected

List of all registered headers, as key => array of values.

Type

array

© 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.Request.html