Exemplo n.º 1
0
 /**
  * Composes HTTP request CUrl options, which will be merged with the default ones.
  * @param string $method request type.
  * @param string $url request URL.
  * @param mixed $params request params.
  * @return array CUrl options.
  * @throws Exception on failure.
  */
 protected function composeRequestCurlOptions($method, $url, $params)
 {
     $curlOptions = [];
     switch ($method) {
         case 'GET':
             $curlOptions[CURLOPT_URL] = $this->composeUrl($url, $params);
             break;
         case 'POST':
             $curlOptions[CURLOPT_POST] = true;
             $curlOptions[CURLOPT_POSTFIELDS] = is_array($params) ? !parent::paramsHaveFile($params) ? http_build_query($params, null, '&', PHP_QUERY_RFC3986) : $params : $params;
             break;
         case 'HEAD':
             $curlOptions[CURLOPT_CUSTOMREQUEST] = $method;
             if (!empty($params)) {
                 $curlOptions[CURLOPT_URL] = $this->composeUrl($url, $params);
             }
             break;
         default:
             $curlOptions[CURLOPT_CUSTOMREQUEST] = $method;
             if (!empty($params)) {
                 $curlOptions[CURLOPT_POSTFIELDS] = $params;
             }
     }
     return $curlOptions;
 }