/** * * @param RequestEnvelope $requestEnvelope * @return ConnectorResponse * @throws Exception */ public function sendRequest(RequestEnvelope $requestEnvelope) { $url = $this->getEndpoint() . $requestEnvelope->getResource(); $request = new Request($requestEnvelope->getMethod(), $url, $requestEnvelope->getHeaders(), $requestEnvelope->getData()); try { $curlClient = new CurlClient($this->curlOptions); $response = $curlClient->process($request); } catch (Exception $ex) { throw new Exception($ex->getMessage(), $ex->getCode(), $ex->getPrevious()); } $responseCode = $response->getCode(); $rawResponseData = $response->getBody(); $responseHeaders = $response->getHeaders(); $connectorResponse = new ConnectorResponse($responseCode, $rawResponseData, $responseHeaders); return $connectorResponse; }
/** * @param Request $request * @return Response * @throws FioFailureException * @throws FioTemporaryUnavailableException */ private function sendRequest(Request $request) { try { $response = $this->httpClient->process($request); $httpCode = $response->getCode(); if ($httpCode === self::CODE_UNAVAILABLE) { throw new FioTemporaryUnavailableException('Fio overheated. Please wait 30 seconds.'); } elseif ($httpCode !== Response::S200_OK) { throw new FioFailureException("Unexpected HTTP code {$httpCode} from Fio API."); } return $response; } catch (BadResponseException $e) { throw new FioFailureException('HTTP request to Fio API failed.', NULL, $e); } }