json

Summary
The json option is used to easily upload JSON encoded data as thebody of a request. A Content-Type header of application/json will beadded if no Content-Type header is already present on the message.
Types
Any PHP type that can be operated on by PHP's json_encode() function.
Default
None
Constant
GuzzleHttp\RequestOptions::JSON
  1. $response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Here's an example of using the tap middleware to see what request is sentover the wire.

  1. use GuzzleHttp\Middleware;
  2.  
  3. // Grab the client's handler instance.
  4. $clientHandler = $client->getConfig('handler');
  5. // Create a middleware that echoes parts of the request.
  6. $tapMiddleware = Middleware::tap(function ($request) {
  7. echo $request->getHeaderLine('Content-Type');
  8. // application/json
  9. echo $request->getBody();
  10. // {"foo":"bar"}
  11. });
  12.  
  13. $response = $client->request('PUT', '/put', [
  14. 'json' => ['foo' => 'bar'],
  15. 'handler' => $tapMiddleware($clientHandler)
  16. ]);

Note

This request option does not support customizing the Content-Type headeror any of the options from PHP's json_encode()function. If you need to customize these settings, then you must pass theJSON encoded data into the request yourself using the body requestoption and you must specify the correct Content-Type header using theheaders request option.

This option cannot be used with body, form_params, or multipart