Example #1
0
 /**
  * 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;
 }