Вы можете отправить POST запрос с данными JSON при помощи Guzzle, передав данные JSON в виде массива пар ключ-значение используя опцию json. Ниже представлен пример кода, который отправляет запрос с данными в формате JSON:
use GuzzleHttp\Client;
$client = new Client();
$response = $client->post('https://httpbin.org/post', [
"json" => [
'key1' => 'value1',
'key2' => 'value2'
]
]);
echo $response->getBody();
// Output:
// {
// "args": {},
// "data": "{\"key1\":\"value1\",\"key2\":\"value2\"}",
// "files": {},
// "form": {},
// "headers": {
// "Content-Length": "33",
// "Content-Type": "application/json",
// "Host": "httpbin.org",
// "User-Agent": "GuzzleHttp/7",
// "X-Amzn-Trace-Id": "Root=1-63fa252d-60bf3c1b2258ff5903bdd116"
// },
// "json": {
// "key1": "value1",
// "key2": "value2"
// },
// "origin": "119.73.117.169",
// "url": "https://httpbin.org/post"
// }