/** * @param Message\Request $request * @return \Psr\Http\Message\ResponseInterface */ protected function sendHttpRequest(Message\Request $request) { $data = $request->toArray(); if (empty($data['signature'])) { $data['signature'] = $this->signature->simpleSign($data); } $url = $this->buildUrl($request->getEndpoint(), $data); $headers = ['Connection' => 'keep-alive', 'Expect' => '', 'Content-Type' => 'application/json', 'Accept' => 'application/json;charset=UTF-8']; $body = $request->isMethodGet() ? NULL : json_encode($data); return $this->httpClient->request($request->getMethod(), $url, $headers, $body); }
protected function logRequest(Message\Request $request, Message\Response $response = NULL, \Exception $exception = NULL) { if (!$this->logger) { return; } $context = ['request' => $request->toArray(), 'response' => $response ? $response->toArray() : NULL]; $responseMsg = $response ? $response->getResultMessage() : NULL; unset($context['request']['signature']); unset($context['response']['signature']); if ($exception === NULL) { $this->logger->info($request->getEndpointName() . ($responseMsg ? ': ' . $responseMsg : NULL), $context); } else { $context['exception'] = ['type' => get_class($exception), 'code' => $exception->getCode(), 'message' => $exception->getMessage()]; $this->logger->error($request->getEndpointName() . ($responseMsg ? ': ' . $responseMsg : NULL), $context); } }