Beispiel #1
0
 /**
  * shall be used beyond high level http connections unit tests (default parameters)
  *
  * @param string $url url to call
  * @param string $method
  * @param string $returnType CURLINFO_HTTP_CODE, etc... (default returns rhe http response data
  * @param array $curlOptions (numeric arrays get interpreted as headers)
  * @return mixed
  */
 protected function curl($url, $method = CURLOPT_HTTPGET, $returnType = "data", $curlOptions = array())
 {
     $options = $this->getDefaultCurlOptions();
     if (!\tao_helpers_Array::isAssoc($curlOptions)) {
         $curlOptions = array(CURLOPT_HTTPHEADER => $curlOptions);
     }
     foreach ($curlOptions as $key => $value) {
         if (isset($options[$key]) && is_array($options[$key]) && is_array($value)) {
             $options[$key] = array_merge($options[$key], $value);
         } else {
             $options[$key] = $value;
         }
     }
     $process = curl_init($url);
     if ($method != "DELETE") {
         curl_setopt($process, $method, 1);
     } else {
         curl_setopt($process, CURLOPT_CUSTOMREQUEST, "DELETE");
     }
     curl_setopt_array($process, $options);
     $data = curl_exec($process);
     if ($returnType != "data") {
         $data = curl_getinfo($process, $returnType);
     }
     curl_close($process);
     return $data;
 }