public function post($request)
    {
        $ch = curl_init();

        $this->setOptions($ch, $request->getUrlStr(), $request->getHeaders());

        curl_setopt($ch, CURLOPT_POST, true);

        if ($request->isWWWFormURLEncodedPost()) {

            $this->logger->debug("POST www-form-urlencoded");
            $requestBody = http_build_query($request->getParams());

            curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);

        } else {

            $this->logger->debug("POST ");

            $requestLength = strlen($request->getBody());

            curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getBody());
        }

        return $this->execute($ch);
    }