/** * Makes the request to Wit and returns the result. * * @param WitRequest $request * * @return WitResponse * * @throws WitSDKException */ public function sendRequest(WitRequest $request) { list($url, $method, $headers, $body) = $this->prepareRequestMessage($request); $timeOut = static::DEFAULT_REQUEST_TIMEOUT; // Should throw `WitSDKException` exception on HTTP client error. // Don't catch to allow it to bubble up. $rawResponse = $this->httpClientHandler->send($url, $method, $body, $headers, $timeOut); static::$requestCount++; $returnResponse = new WitResponse($request, $rawResponse->getBody(), $rawResponse->getHttpResponseCode(), $rawResponse->getHeaders()); if ($returnResponse->isError()) { throw $returnResponse->getThrownException(); } return $returnResponse; }