diff --git a/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php b/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php index dc4b6762b87a7..e026b42d41476 100644 --- a/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php +++ b/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php @@ -194,7 +194,7 @@ private function getCurlCommand(array $trace): ?string $dataArg = []; if ($json = $trace['options']['json'] ?? null) { - $dataArg[] = '--data '.escapeshellarg(json_encode($json, \JSON_PRETTY_PRINT)); + $dataArg[] = '--data '.escapeshellarg(self::jsonEncode($json)); } elseif ($body = $trace['options']['body'] ?? null) { if (\is_string($body)) { try { diff --git a/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php b/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php index 863c91d3d68db..1eee2fdce1263 100755 --- a/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php +++ b/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php @@ -307,6 +307,8 @@ public function __toString(): string 'json' => [ 'foo' => [ 'bar' => 'baz', + 'qux' => [1.10, 1.0], + 'fred' => ['',"'bar'",'"baz"','&blong&'], ], ], ], @@ -317,14 +319,10 @@ public function __toString(): string --url %1$shttp://localhost:8057/json%1$s \\ --header %1$sContent-Type: application/json%1$s \\ --header %1$sAccept: */*%1$s \\ - --header %1$sContent-Length: 21%1$s \\ + --header %1$sContent-Length: 120%1$s \\ --header %1$sAccept-Encoding: gzip%1$s \\ --header %1$sUser-Agent: Symfony HttpClient/Native%1$s \\ - --data %1$s{ - "foo": { - "bar": "baz" - } -}%1$s', + --data %1$s{"foo":{"bar":"baz","qux":[1.1,1.0],"fred":["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]}}%1$s', ]; } }