protected function putRequest($method, $uri, $params, $body)
    {
        $this->checkBody($body, $method);

        // put requests requires content-length header
        $this->setHttpHeader('Content-Length: ' . strlen($body));

        return $this->execute($method, $uri, $params, $body);
    }