Exemplo n.º 1
0
 public function execute($http_verb, $signed_url, $params = array())
 {
     $curl = new RestRequest();
     $ch = curl_init($signed_url);
     try {
         switch (strtoupper($http_verb)) {
             case 'GET':
                 $curl->setCurlOpts($ch);
                 $output = curl_exec($ch);
                 $contentype = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
                 $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                 if (curl_errno($ch)) {
                     $output = curl_error($ch);
                 }
                 curl_close($ch);
                 break;
             case 'POST':
                 curl_setopt($ch, CURLOPT_POST, true);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
                 $curl->setCurlOpts($ch);
                 $output = curl_exec($ch);
                 $contentype = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
                 $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                 curl_close($ch);
                 break;
             case 'PUT':
                 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
                 curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
                 $curl->setCurlOpts($ch);
                 $output = curl_exec($ch);
                 $contentype = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
                 $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                 curl_close($ch);
                 break;
             case 'DELETE':
                 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
                 $curl->setCurlOpts($ch);
                 $output = curl_exec($ch);
                 $contentype = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
                 $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                 if (curl_errno($ch)) {
                     $output = curl_error($ch);
                 }
                 curl_close($ch);
                 break;
             default:
                 throw new InvalidArgumentException('Current verb (' . $http_verb . ') is an invalid REST verb.');
         }
     } catch (InvalidArgumentException $e) {
         curl_close($ch);
         throw $e;
     } catch (Exception $e) {
         curl_close($ch);
         throw $e;
     }
     return array($output, $contentype, $httpcode);
 }