You are here

function _chr_curl_request_type_option in cURL HTTP Request 7

Same name and namespace in other branches
  1. 6 chr.module \_chr_curl_request_type_option()

Convert the string name of the request type to a cURL opt value.

Parameters

array $options [reference]: Options array

object $ch [reference]: cURL Object

Return value

boolean Returns FALSE on error.

1 call to _chr_curl_request_type_option()
chr_curl_http_request in ./chr.module
Performs an HTTP request.

File

./chr.module, line 413
cURL HTTP Request methods

Code

function _chr_curl_request_type_option(&$options, &$ch) {
  $valid_method = FALSE;
  switch (drupal_strtoupper($options['method'])) {
    case 'DELETE':
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
      $valid_method = TRUE;
      break;
    case 'OPTIONS':
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'OPTIONS');
      $valid_method = TRUE;
      break;
    case 'TRACE':
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'TRACE');
      $valid_method = TRUE;
      break;
    case 'CONNECT':

      // @todo
      break;
    case 'PATCH':

      // @todo
      break;
    case 'POST':

      // Assign the data to the proper cURL option
      curl_setopt($ch, CURLOPT_POSTFIELDS, $options['data']);
      if (isset($options['multipart']) && TRUE === $options['multipart']) {

        // Do nothing for now
      }
      else {
        curl_setopt($ch, CURLOPT_POST, TRUE);
      }
      $valid_method = TRUE;
      break;
    case 'PUT':

      // Assign the data to the proper cURL option
      curl_setopt($ch, CURLOPT_POSTFIELDS, $options['data']);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
      curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-HTTP-Method-Override: PUT',
      ));
      $valid_method = TRUE;
      break;
    case 'GET':
      curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
      $valid_method = TRUE;
      break;
    case 'HEAD':
      curl_setopt($ch, CURLOPT_NOBODY, TRUE);
      $valid_method = TRUE;
      break;
    default:
      return $valid_method;
  }
  return $valid_method;
}