diff --git a/Factory/PsrHttpFactory.php b/Factory/PsrHttpFactory.php index 6ad157f..09c4360 100644 --- a/Factory/PsrHttpFactory.php +++ b/Factory/PsrHttpFactory.php @@ -20,7 +20,6 @@ use Psr\Http\Message\UploadedFileInterface; use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; use Symfony\Component\HttpFoundation\BinaryFileResponse; -use Symfony\Component\HttpFoundation\Exception\JsonException; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -79,11 +78,11 @@ public function createRequest(Request $symfonyRequest) $format = $symfonyRequest->getContentType(); } - if (method_exists(Request::class, 'getPayload') && 'json' === $format) { - try { - $parsedBody = $symfonyRequest->getPayload()->all(); - } catch (JsonException $e) { - $parsedBody = []; + if ('json' === $format) { + $parsedBody = json_decode($symfonyRequest->getContent(), true, 512, \JSON_BIGINT_AS_STRING); + + if (!\is_array($parsedBody)) { + $parsedBody = null; } } else { $parsedBody = $symfonyRequest->request->all(); diff --git a/Tests/Factory/PsrHttpFactoryTest.php b/Tests/Factory/PsrHttpFactoryTest.php index a0a4a32..9d4c4c9 100644 --- a/Tests/Factory/PsrHttpFactoryTest.php +++ b/Tests/Factory/PsrHttpFactoryTest.php @@ -293,6 +293,6 @@ public function testWrongJsonContent() $request = new Request([], [], [], [], [], $headers, '{"city":"Paris"'); $psrRequest = $this->factory->createRequest($request); - $this->assertSame([], $psrRequest->getParsedBody()); + $this->assertNull($psrRequest->getParsedBody()); } }