/** * {@inheritDoc} */ public function request($method, $uri, array $parameters = []) { $itemEnvelope = null; if (isset($parameters['itemEnvelope'])) { $itemEnvelope = $parameters['itemEnvelope']; unset($parameters['itemEnvelope']); } try { $response = $this->guzzle->request($method, $uri, array_merge($this->params, $parameters)); } catch (ClientException $e) { if (!$e->hasResponse()) { throw $e; } throw $this->resolveExceptionClass($e); } catch (Exception $e) { throw $e; } $response = json_decode($response->getBody()->getContents(), true); if ($response === null) { $response = []; } if ($itemEnvelope) { $response['itemEnvelope'] = $itemEnvelope; } return Response::createFromJson($response); }