Payload

Via Request Methods

The post(), put(), patch(), delete() and request() methods allow you to set a request's payload data, via an array of key-value pairs.

$response = $client
        ->patch('/users/5547', [
            'email' => 'smith.henrikson@acme.org'
        ]);

Add Data

If you require to build up your request's payload gradually, then you can achieve such using the withData() method. The method accepts an array, which is merged with the request's already added payload data, before it is sent.

$builder = $client
        ->withData([ 'name' => 'Sophia' ]);

// Later...
$builder->withData([ 'email' => 'sophia.wayne@acme.org' ]);

Set Data

Alternatively, you can specify the entire payload using setData(). The method will overwrite payload data that has already been set.

$builder = $client
        ->setData([
            'name' => 'Sophia',
            'email' => 'sophia.wayne@acme.org'
        ]);

Raw Payload

In situations where you require complete control of the request's body, use withRawPayload(). Unlike the previous illustrated methods, the raw-payload method allows you to specify the entire request body.

$builder = $client
        ->withRawPayload('raw request body...');

WARNING

You cannot set a request's payload using both raw-payload and data (withData(), setData() or via request methods).

Attachments specified prior or after setting the raw-payload, will be ignored.