From 0a9eef3627b80988653f484634168bab40cc2cf4 Mon Sep 17 00:00:00 2001 From: Matthew Clark Date: Thu, 30 Sep 2021 10:20:12 -0500 Subject: [PATCH] patch: Content-Length header on connection and error responses --- src/HttpApi/Controllers/Controller.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/HttpApi/Controllers/Controller.php b/src/HttpApi/Controllers/Controller.php index 492b3eb800..36791e3e78 100644 --- a/src/HttpApi/Controllers/Controller.php +++ b/src/HttpApi/Controllers/Controller.php @@ -80,9 +80,13 @@ protected function checkContentLength(ConnectionInterface $connection) ->ensureValidAppId($laravelRequest->appId) ->ensureValidSignature($laravelRequest); - $response = $this($laravelRequest); + $response = JsonResponse::create( $this($laravelRequest) ); - $connection->send(JsonResponse::create($response)); + $content = $response->content(); + + $response->header( 'Content-Length', strlen($content) ); + + $connection->send( $response ); $connection->close(); } } @@ -97,11 +101,14 @@ public function onError(ConnectionInterface $connection, Exception $exception) return; } + $responseData = json_encode([ + 'error' => $exception->getMessage(), + ]); + $response = new Response($exception->getStatusCode(), [ 'Content-Type' => 'application/json', - ], json_encode([ - 'error' => $exception->getMessage(), - ])); + 'Content-Length' => strlen( $responseData ) + ], $responseData); $connection->send(\GuzzleHttp\Psr7\str($response));