diff --git a/Connection/Handler/RequestSerializationHandler.php b/Connection/Handler/RequestSerializationHandler.php index 6ffb5e8..38bfd71 100644 --- a/Connection/Handler/RequestSerializationHandler.php +++ b/Connection/Handler/RequestSerializationHandler.php @@ -61,7 +61,7 @@ public function __invoke($request) unset($request['query_params']); } - if (!empty($body)) { + if (!empty($body) && 'GET' !== $request['http_method']) { ksort($body); $request['body'] = $this->serializer->serialize($body); } diff --git a/Serializer/SmartSerializer.php b/Serializer/SmartSerializer.php index 0d833ec..406fe33 100644 --- a/Serializer/SmartSerializer.php +++ b/Serializer/SmartSerializer.php @@ -115,7 +115,7 @@ private function decode($data) return ''; } - $result = @json_decode($data, true); + $result = json_decode($data, true); if (JSON_ERROR_NONE !== json_last_error() && E_NOTICE === (error_reporting() & E_NOTICE)) { throw new JsonErrorException(json_last_error(), $data, $result); diff --git a/Tests/Unit/Connection/Handler/RequestSerializationHandlerTest.php b/Tests/Unit/Connection/Handler/RequestSerializationHandlerTest.php index a923b33..d981b2c 100644 --- a/Tests/Unit/Connection/Handler/RequestSerializationHandlerTest.php +++ b/Tests/Unit/Connection/Handler/RequestSerializationHandlerTest.php @@ -39,10 +39,16 @@ public function testSerializeRequest($request, $expectedBody) public function requestDataProvider() { $data = [ - [['body' => ['foo' => 'bar']], '{"foo":"bar"}'], - [['query_params' => ['foo' => 'bar']], '{"foo":"bar"}'], - [['body' => ['foo' => 'bar'], 'query_params' => ['foo' => 'bar']], '{"foo":"bar"}'], - [['body' => ['foo1' => 'bar1'], 'query_params' => ['foo2' => 'bar2']], '{"foo1":"bar1","foo2":"bar2"}'], + [['http_method' => 'POST', 'body' => ['foo' => 'bar']], '{"foo":"bar"}'], + [['http_method' => 'GET', 'query_params' => ['foo' => 'bar']], null], + [ + ['http_method' => 'POST', 'body' => ['foo' => 'bar'], 'query_params' => ['foo' => 'bar']], + '{"foo":"bar"}' + ], + [ + ['http_method' => 'POST', 'body' => ['foo1' => 'bar1'], 'query_params' => ['foo2' => 'bar2']], + '{"foo1":"bar1","foo2":"bar2"}' + ], [[], null], ];