From 70ac87df820478a3becca8f2f5e859694c75099f Mon Sep 17 00:00:00 2001 From: 1099511627776 <1099511627776@mail.ru> Date: Tue, 30 Oct 2018 19:29:03 +0200 Subject: [PATCH] Close connection after stream read --- src/RequestManagers/HttpRequestManager.php | 25 +++++++--------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/RequestManagers/HttpRequestManager.php b/src/RequestManagers/HttpRequestManager.php index 6405321..6a3b527 100644 --- a/src/RequestManagers/HttpRequestManager.php +++ b/src/RequestManagers/HttpRequestManager.php @@ -12,6 +12,7 @@ namespace Web3\RequestManagers; use InvalidArgumentException; +use Psr\Http\Message\StreamInterface; use RuntimeException as RPCException; use Psr\Http\Message\ResponseInterface; use GuzzleHttp\Exception\RequestException; @@ -53,22 +54,7 @@ class HttpRequestManager extends RequestManager implements IRequestManager if (!is_string($payload)) { throw new \InvalidArgumentException('Payload must be string.'); } - // $promise = $this->client->postAsync($this->host, [ - // 'headers' => [ - // 'content-type' => 'application/json' - // ], - // 'body' => $payload - // ]); - // $promise->then( - // function (ResponseInterface $res) use ($callback) { - // var_dump($res->body()); - // call_user_func($callback, null, $res); - // }, - // function (RequestException $err) use ($callback) { - // var_dump($err->getMessage()); - // call_user_func($callback, $err, null); - // } - // ); + try { $res = $this->client->post($this->host, [ 'headers' => [ @@ -78,7 +64,12 @@ class HttpRequestManager extends RequestManager implements IRequestManager 'timeout' => $this->timeout, 'connect_timeout' => $this->timeout ]); - $json = json_decode($res->getBody()); + /** + * @var StreamInterface $result; + */ + $result = $res->getBody(); + $json = json_decode($result); + $result->close(); if (JSON_ERROR_NONE !== json_last_error()) { call_user_func($callback, new InvalidArgumentException('json_decode error: ' . json_last_error_msg()), null);