NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class Request

HTTP request class to send requests

  Guzzle\Http\Message\AbstractMessage implements Guzzle\Http\Message\MessageInterface
  Guzzle\Http\Message\Request implements Guzzle\Http\Message\RequestInterface

### Direct known subclasses

`Guzzle\Http\Message\EntityEnclosingRequest`

Namespace: Guzzle\Http\Message
Located at Guzzle/Http/Message/Request.php

## Methods summary

- `public static` `getAllEvents ( )`

  Get a list of all of the events emitted from the class

- `public` `__construct ( string $method, string|Url $url, array|Collection $headers = array() )`
- `public` `__clone ( )`
- `public` `__toString ( )`

  Get the HTTP request as a string

- `public static` `onRequestError ( Guzzle\Common\Event $event )`

  Default method that will throw exceptions if an unsuccessful response is received.

- `public` `setClient ( Guzzle\Http\ClientInterface $client )`

  Set the client used to transport the request

- `public` `getClient ( )`

  Get the client used to transport the request

- `public` `getRawHeaders ( )`

  Get the raw message headers as a string

- `public` `setUrl ( string $url )`

  Set the URL of the request

- `public` `send ( )`

  Send the request

- `public` `getResponse ( )`

  Get the previously received `Guzzle\Http\Message\Response` or NULL if the request has not been sent

- `public` `getQuery ( mixed $asString = false )`

  Get the collection of key value pairs that will be used as the query string in the request

- `public` `getMethod ( )`

  Get the HTTP method of the request

- `public` `getScheme ( )`

  Get the URI scheme of the request (http, https, ftp, etc)

- `public` `setScheme ( string $scheme )`

  Set the URI scheme of the request (http, https, ftp, etc)

- `public` `getHost ( )`

  Get the host of the request

- `public` `setHost ( string $host )`

  Set the host of the request. Including a port in the host will modify the port of the request.

- `public` `getProtocolVersion ( )`

  Get the HTTP protocol version of the request

- `public` `setProtocolVersion ( string $protocol )`

  Set the HTTP protocol version of the request (e.g. 1.1 or 1.0)

- `public` `getPath ( )`

  Get the path of the request (e.g. '/', '/index.html')

- `public` `setPath ( string|array $path )`

  Set the path of the request (e.g. '/', '/index.html')

- `public` `getPort ( )`

  Get the port that the request will be sent on if it has been set

- `public` `setPort ( int $port )`

  Set the port that the request will be sent on

- `public` `getUsername ( )`

  Get the username to pass in the URL if set

- `public` `getPassword ( )`

  Get the password to pass in the URL if set

- `public` `setAuth ( string|bool $user, string $password = '', string $scheme = CURLAUTH_BASIC )`

  Set HTTP authorization parameters

- `public` `getResource ( )`

  Get the resource part of the the request, including the path, query string, and fragment

- `public` `getUrl ( bool $asObject = false )`

  Get the full URL of the request (e.g. 'http://www.guzzle-project.com/')

- `public` `getState ( )`

  Get the state of the request. One of 'complete', 'transfer', 'new', 'error'

- `public` `setState ( string $state, array $context = array() )`

  Set the state of the request

- `public` `getCurlOptions ( )`

  Get the cURL options that will be applied when the cURL handle is created

- `public` `startResponse ( Guzzle\Http\Message\Response $response )`

  The start of a response has been received for a request and the request is still in progress

- `public` `setResponse ( Guzzle\Http\Message\Response $response, bool $queued = false )`

  Manually set a response for the request.

- `public` `setResponseBody ( EntityBodyInterface|string|resource $body )`

  Set the EntityBody that will hold a successful response message's entity body.

- `public` `getResponseBody ( )`

  Get the EntityBody that will hold the resulting response message's entity body. This response body will only be used for successful responses. Intermediate responses (e.g. redirects) will not use the targeted response body.

- `public` `getCookies ( )`

  Get an array of Cookies

- `public` `getCookie ( string $name )`

  Get a cookie value by name

- `public` `addCookie ( string $name, string $value )`

  Add a Cookie value by name to the Cookie header

- `public` `removeCookie ( string $name )`

  Remove a specific cookie value by name

- `public` `setEventDispatcher ( Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher )`

  Set the EventDispatcher of the request

- `public` `getEventDispatcher ( )`

  Get the EventDispatcher of the request

- `public` `dispatch ( string $eventName, array $context = array() )`

  Helper to dispatch Guzzle events and set the event name on the event

- `public` `addSubscriber ( Symfony\Component\EventDispatcher\EventSubscriberInterface $subscriber )`

  Add an event subscriber to the dispatcher

- `protected` `getEventArray ( )`

  Get an array containing the request and response for event notifications

- `protected` `processResponse ( array $context = array() )`

  Process a received response

## Methods detail

# `public static array`
`getAllEvents( )`

Get a list of all of the events emitted from the class

#### Returns

`array`

#### Implementation of

`Guzzle\Common\HasDispatcherInterface::getAllEvents()`
# `public`
`__construct( string $method, string|`Guzzle\Http\Url` $url, array|`Guzzle\Common\Collection` $headers = array() )`

#### Parameters

$method
  `string`
  $method HTTP method
$url
  `string|`Guzzle\Http\Url``
  $url HTTP URL to connect to. The URI scheme, host header, and URI are parsed from the full URL. If query string parameters are present they will be parsed as well.
$headers
  `array|`Guzzle\Common\Collection``
  $headers HTTP headers

#### Overrides

`Guzzle\Http\Message\AbstractMessage::__construct`
# `public`
`__clone( )`
# `public string`
`__toString( )`

Get the HTTP request as a string

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::__toString()`
# `public static`
`onRequestError( `Guzzle\Common\Event` $event )`

Default method that will throw exceptions if an unsuccessful response is received.

#### Parameters

$event
  ``Guzzle\Common\Event``
  $event Received

#### Throws

``Guzzle\Http\Exception\BadResponseException``
if the response is not successful
# `public `Guzzle\Http\Message\Request``
`setClient( `Guzzle\Http\ClientInterface` $client )`

Set the client used to transport the request

#### Parameters

$client
  ``Guzzle\Http\ClientInterface``
  $client

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setClient()`
# `public `Guzzle\Http\ClientInterface``
`getClient( )`

Get the client used to transport the request

#### Returns

``Guzzle\Http\ClientInterface``
$client

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getClient()`
# `public string`
`getRawHeaders( )`

Get the raw message headers as a string

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\MessageInterface::getRawHeaders()`
# `public `Guzzle\Http\Message\Request``
`setUrl( string $url )`

Set the URL of the request

#### Parameters

$url
  `string`
  $url|Url Full URL to set including query string

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setUrl()`
# `public `Guzzle\Http\Message\Response``
`send( )`

Send the request

#### Returns

``Guzzle\Http\Message\Response``

#### Throws

``Guzzle\Http\Exception\RequestException``
on a request error

#### Implementation of

`Guzzle\Http\Message\RequestInterface::send()`
# `public `Guzzle\Http\Message\Response`|null`
`getResponse( )`

Get the previously received `Guzzle\Http\Message\Response` or NULL if the request has not been sent

#### Returns

``Guzzle\Http\Message\Response`|null`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getResponse()`
# `public QueryString`
`getQuery( mixed $asString = false )`

Get the collection of key value pairs that will be used as the query string in the request

#### Returns

`QueryString`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getQuery()`
# `public string`
`getMethod( )`

Get the HTTP method of the request

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getMethod()`
# `public string`
`getScheme( )`

Get the URI scheme of the request (http, https, ftp, etc)

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getScheme()`
# `public `Guzzle\Http\Message\Request``
`setScheme( string $scheme )`

Set the URI scheme of the request (http, https, ftp, etc)

#### Parameters

$scheme
  `string`
  $scheme Scheme to set

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setScheme()`
# `public string`
`getHost( )`

Get the host of the request

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getHost()`
# `public `Guzzle\Http\Message\Request``
`setHost( string $host )`

Set the host of the request. Including a port in the host will modify the port of the request.

#### Parameters

$host
  `string`
  $host Host to set (e.g. www.yahoo.com, www.yahoo.com:80)

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setHost()`
# `public string`
`getProtocolVersion( )`

Get the HTTP protocol version of the request

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getProtocolVersion()`
# `public `Guzzle\Http\Message\Request``
`setProtocolVersion( string $protocol )`

Set the HTTP protocol version of the request (e.g. 1.1 or 1.0)

#### Parameters

$protocol
  `string`
  $protocol HTTP protocol version to use with the request

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setProtocolVersion()`
# `public string`
`getPath( )`

Get the path of the request (e.g. '/', '/index.html')

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getPath()`
# `public `Guzzle\Http\Message\Request``
`setPath( string|array $path )`

Set the path of the request (e.g. '/', '/index.html')

#### Parameters

$path
  `string|array`
  $path Path to set or array of segments to implode

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setPath()`
# `public integer|null`
`getPort( )`

Get the port that the request will be sent on if it has been set

#### Returns

`integer|null`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getPort()`
# `public `Guzzle\Http\Message\Request``
`setPort( integer $port )`

Set the port that the request will be sent on

#### Parameters

$port
  `integer`
  $port Port number to set

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setPort()`
# `public string|null`
`getUsername( )`

Get the username to pass in the URL if set

#### Returns

`string|null`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getUsername()`
# `public string|null`
`getPassword( )`

Get the password to pass in the URL if set

#### Returns

`string|null`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getPassword()`
# `public `Guzzle\Http\Message\Request``
`setAuth( string|boolean $user, string $password = '', string $scheme = CURLAUTH_BASIC )`

Set HTTP authorization parameters

#### Parameters

$user
  `string|boolean`
  $user User name or false disable authentication
$password
  `string`
  $password Password
$scheme
  `string`
  $scheme Authentication scheme ('Basic', 'Digest', or a CURLAUTH_* constant (deprecated))

#### Returns

``Guzzle\Http\Message\Request``

#### Throws

``Guzzle\Http\Exception\RequestException``

#### Link

http://www.ietf.org/rfc/rfc2617.txt
See the available options for CURLOPT_HTTPAUTH

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setAuth()`
# `public string`
`getResource( )`

Get the resource part of the the request, including the path, query string, and fragment

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getResource()`
# `public string|`Guzzle\Http\Url``
`getUrl( boolean $asObject = false )`

Get the full URL of the request (e.g. 'http://www.guzzle-project.com/')

#### Parameters

$asObject
  `boolean`
  $asObject Set to TRUE to retrieve the URL as a clone of the URL object owned by the request.

#### Returns

`string|`Guzzle\Http\Url``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getUrl()`
# `public string`
`getState( )`

Get the state of the request. One of 'complete', 'transfer', 'new', 'error'

#### Returns

`string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getState()`
# `public string`
`setState( string $state, array $context = array() )`

Set the state of the request

#### Parameters

$state
  `string`
  $state State of the request ('complete', 'transfer', 'new', 'error')
$context
  `array`
  $context Contextual information about the state change

#### Returns

`string`
Returns the current state of the request (which may have changed due to events being fired)

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setState()`
# `public `Guzzle\Common\Collection``
`getCurlOptions( )`

Get the cURL options that will be applied when the cURL handle is created

#### Returns

``Guzzle\Common\Collection``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getCurlOptions()`
# `public `Guzzle\Http\Message\Request``
`startResponse( `Guzzle\Http\Message\Response` $response )`

The start of a response has been received for a request and the request is still in progress

#### Parameters

$response
  ``Guzzle\Http\Message\Response``
  $response Response that has been received so far

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::startResponse()`
# `public `Guzzle\Http\Message\Request``
`setResponse( `Guzzle\Http\Message\Response` $response, boolean $queued = false )`

Manually set a response for the request.

This method is useful for specifying a mock response for the request or setting the response using a cache. Manually setting a response will bypass the actual sending of a request.

#### Parameters

$response
  ``Guzzle\Http\Message\Response``
  $response Response object to set
$queued
  `boolean`
  $queued Set to TRUE to keep the request in a state of not having been sent, but queue the response for send()

#### Returns

``Guzzle\Http\Message\Request``
Returns a reference to the object.

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setResponse()`
# `public `Guzzle\Http\Message\Request``
`setResponseBody( `Guzzle\Http\EntityBodyInterface`|string|resource $body )`

Set the EntityBody that will hold a successful response message's entity body.

This method should be invoked when you need to send the response's entity body somewhere other than the normal php://temp buffer. For example, you can send the entity body to a socket, file, or some other custom stream.

#### Parameters

$body
  ``Guzzle\Http\EntityBodyInterface`|string|resource`
  $body Response body object. Pass a string to attempt to store the response body in a local file.

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::setResponseBody()`
# `public `Guzzle\Http\EntityBodyInterface``
`getResponseBody( )`

Get the EntityBody that will hold the resulting response message's entity body. This response body will only be used for successful responses. Intermediate responses (e.g. redirects) will not use the targeted response body.

#### Returns

``Guzzle\Http\EntityBodyInterface``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getResponseBody()`
# `public array`
`getCookies( )`

Get an array of Cookies

#### Returns

`array`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getCookies()`
# `public null|string`
`getCookie( string $name )`

Get a cookie value by name

#### Parameters

$name
  `string`
  $name Cookie to retrieve

#### Returns

`null|string`

#### Implementation of

`Guzzle\Http\Message\RequestInterface::getCookie()`
# `public `Guzzle\Http\Message\Request``
`addCookie( string $name, string $value )`

Add a Cookie value by name to the Cookie header

#### Parameters

$name
  `string`
  $name Name of the cookie to add
$value
  `string`
  $value Value to set

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::addCookie()`
# `public `Guzzle\Http\Message\Request``
`removeCookie( string $name )`

Remove a specific cookie value by name

#### Parameters

$name
  `string`
  $name Cookie to remove by name

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Http\Message\RequestInterface::removeCookie()`
# `public `Guzzle\Http\Message\Request``
`setEventDispatcher( Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher )`

Set the EventDispatcher of the request

#### Parameters

$eventDispatcher
  `Symfony\Component\EventDispatcher\EventDispatcherInterface`
  $eventDispatcher

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Common\HasDispatcherInterface::setEventDispatcher()`
# `public Symfony\Component\EventDispatcher\EventDispatcherInterface`
`getEventDispatcher( )`

Get the EventDispatcher of the request

#### Returns

`Symfony\Component\EventDispatcher\EventDispatcherInterface`

#### Implementation of

`Guzzle\Common\HasDispatcherInterface::getEventDispatcher()`
# `public `Guzzle\Common\Event``
`dispatch( string $eventName, array $context = array() )`

Helper to dispatch Guzzle events and set the event name on the event

#### Parameters

$eventName
  `string`
  $eventName Name of the event to dispatch
$context
  `array`
  $context Context of the event

#### Returns

``Guzzle\Common\Event``
Returns the created event object

#### Implementation of

`Guzzle\Common\HasDispatcherInterface::dispatch()`
# `public `Guzzle\Http\Message\Request``
`addSubscriber( Symfony\Component\EventDispatcher\EventSubscriberInterface $subscriber )`

Add an event subscriber to the dispatcher

#### Parameters

$subscriber
  `Symfony\Component\EventDispatcher\EventSubscriberInterface`
  $subscriber Event subscriber

#### Returns

``Guzzle\Http\Message\Request``

#### Implementation of

`Guzzle\Common\HasDispatcherInterface::addSubscriber()`
# `protected array`
`getEventArray( )`

Get an array containing the request and response for event notifications

#### Returns

`array`
# `protected`
`processResponse( array $context = array() )`

Process a received response

#### Parameters

$context
  `array`
  $context Contextual information

#### Throws

``Guzzle\Http\Exception\RequestException`|`Guzzle\Http\Exception\BadResponseException``
on unsuccessful responses

### Methods inherited from Guzzle\Http\Message\AbstractMessage

`addHeader()`, `addHeaders()`, `getHeader()`, `getHeaderLines()`, `getHeaders()`, `getParams()`, `hasHeader()`, `removeHeader()`, `setHeader()`, `setHeaderFactory()`, `setHeaders()`

### Magic methods summary

## Constants summary

### Constants inherited from Guzzle\Http\Message\RequestInterface

`CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `STATE_COMPLETE`, `STATE_ERROR`, `STATE_NEW`, `STATE_TRANSFER`, `TRACE`

## Properties summary

`protected Symfony\Component\EventDispatcher\EventDispatcherInterface` | $eventDispatcher | #
`protected `Guzzle\Http\Url`` | $url | # HTTP Url
`protected string` | $method | # HTTP method (GET, PUT, POST, DELETE, HEAD, OPTIONS, TRACE)
`protected `Guzzle\Http\ClientInterface`` | $client | #
`protected `Guzzle\Http\Message\Response`` | $response | # Response of the request
`protected `Guzzle\Http\EntityBodyInterface`` | $responseBody | # Response body
`protected string` | $state | # State of the request object
`protected string` | $username | # Authentication username
`protected string` | $password | # Auth password
`protected `Guzzle\Common\Collection`` | $curlOptions | # cURL specific transfer options
`protected boolean` | $isRedirect | #

### Properties inherited from Guzzle\Http\Message\AbstractMessage

`$headerFactory`, `$headers`, `$params`, `$protocol`, `$protocolVersion`