protected function doPost($object, $url, $parameters)
    {
        $httpResponse = null;
        $headers = null;
        $postBody = null;
        $options = $this->httpClientOptions;

        try {
            $httpResponse = $this->client->post($url, $headers, $postBody, $options)
                ->setHeader('Content-Type', 'application/x-www-form-urlencoded')
                ->setBody(http_build_query($parameters))
                ->send();
        } catch (HttpException $e) {
            $msg = sprintf('%s. Http status code [%s]', $e->getMessage(), $e->getResponse()->getStatusCode());

            throw new RequestException($msg, 0, $e, $url, $parameters);
        } catch (\Exception $e) {
            throw new RuntimeException($e->getMessage(), 0, $e, $url, $parameters);
        }

        if (204 == $httpResponse->getStatusCode()) {
            return array();
        }

        try {
            $handler = $this->getHandler($httpResponse, $object);
            $result = $handler->parse()->getResult();
            $this->totalResults = $handler->getResultCount();

            return $result;
        } catch (ExceptionInterface $e) {
            $e->setUrl($url);
            $e->setParameters($parameters);

            throw $e;
        } catch (\Exception $e) {
            throw new RuntimeException($e->getMessage(), 0, $e, $url, $parameters);
        }
    }