Skip to content

Commit f47a20b

Browse files
Don't rely on Request::getPayload() to populate the parsed body
1 parent 3c62b81 commit f47a20b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

Factory/PsrHttpFactory.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ public function createRequest(Request $symfonyRequest)
7979
$format = $symfonyRequest->getContentType();
8080
}
8181

82-
if (method_exists(Request::class, 'getPayload') && 'json' === $format) {
83-
try {
84-
$parsedBody = $symfonyRequest->getPayload()->all();
85-
} catch (JsonException $e) {
86-
$parsedBody = [];
82+
if ('json' === $format) {
83+
$parsedBody = json_decode($symfonyRequest->getContent(), true, 512, \JSON_BIGINT_AS_STRING);
84+
85+
if (!\is_array($parsedBody)) {
86+
$parsedBody = null;
8787
}
8888
} else {
8989
$parsedBody = $symfonyRequest->request->all();

Tests/Factory/PsrHttpFactoryTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,6 @@ public function testWrongJsonContent()
293293
$request = new Request([], [], [], [], [], $headers, '{"city":"Paris"');
294294
$psrRequest = $this->factory->createRequest($request);
295295

296-
$this->assertSame([], $psrRequest->getParsedBody());
296+
$this->assertNull($psrRequest->getParsedBody());
297297
}
298298
}

0 commit comments

Comments
 (0)