/** * make a HTTP POST/GET call to rackspace cloud service. This object is used internall for all * rackspace cloud objects in this package. * * * @param string $Url access point * @param array $Headers an associated Array of headers * @param mixed $Extra extra POST data * @param bool $ReturnHeader * @param bool $HTTPDelete used to perform a HTTP DELETE call * @param boll $HTTPPut used to pergorm PUT POSTS (Addded by Nick B) * @return string Response */ public static function post($Url, $Headers, $Extra = null, $ReturnHeader = false, $HTTPDelete = false, $HTTPPut = false) { try { $c = curl_init($Url); } catch (Exception $e) { return false; } if ($Headers) { $_headers = array(); foreach ($Headers as $key => $value) { $_headers[] = "{$key}: {$value}"; } curl_setopt($c, CURLOPT_HTTPHEADER, $_headers); } if ($Extra) { //echo "Post"; //echo $Extra; curl_setopt($c, CURLOPT_POST, 1); curl_setopt($c, CURLOPT_POSTFIELDS, $Extra); } if ($HTTPDelete) { curl_setopt($c, CURLOPT_CUSTOMREQUEST, "DELETE"); } if ($HTTPPut) { curl_setopt($c, CURLOPT_CUSTOMREQUEST, "PUT"); } if ($ReturnHeader) { curl_setopt($c, CURLOPT_HEADER, true); //curl_setopt($c, CURLINFO_HEADER_OUT, true); } curl_setopt($c, CURLOPT_URL, $Url); curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($c, CURLOPT_VERBOSE, true); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); $Response = curl_exec($c); $Info = curl_getinfo($c, CURLINFO_HTTP_CODE); self::$LastHTTPCode = $Info; curl_close($c); return $Response; }