You are here

private function ServicesClientConnectionCurlRequest::getDefaultCurlOptions in Services Client 7.2

Same name and namespace in other branches
  1. 7 services_client_connection/plugins/ServicesClientConnectionCurlRequest.inc \ServicesClientConnectionCurlRequest::getDefaultCurlOptions()

Retrieve default CURL options required for every CURL request

Parameters

ServicesClientConnectionHttpRequest $request: Request data that should be processed

Return value

array cURL opts array

4 calls to ServicesClientConnectionCurlRequest::getDefaultCurlOptions()
ServicesClientConnectionCurlRequest::getCurlDeleteOptions in services_client_connection/plugins/ServicesClientConnectionCurlRequest.inc
Return the standard set of curl options for a DELETE
ServicesClientConnectionCurlRequest::getCurlGetOptions in services_client_connection/plugins/ServicesClientConnectionCurlRequest.inc
Return the standard set of curl options for a GET
ServicesClientConnectionCurlRequest::getCurlPostOptions in services_client_connection/plugins/ServicesClientConnectionCurlRequest.inc
Return the standard set of curl options for a POST
ServicesClientConnectionCurlRequest::getCurlPutOptions in services_client_connection/plugins/ServicesClientConnectionCurlRequest.inc
Return the standard set of curl options for a PUT

File

services_client_connection/plugins/ServicesClientConnectionCurlRequest.inc, line 47
Make requests via cURL

Class

ServicesClientConnectionCurlRequest
@file Make requests via cURL

Code

private function getDefaultCurlOptions(&$request) {

  // URL can contain port, make sure its processed correctly.
  $url = parse_url($request->url);
  $request->url = "{$url['scheme']}://{$url['host']}{$url['path']}";
  if (isset($url['query'])) {
    $request->url .= '?' . $url['query'];
  }

  // Add params to URL
  if (!empty($request->query)) {
    $request->url .= strpos($request->url, '?') === FALSE ? '?' : '&';
    $request->url .= http_build_query($request->query, NULL, '&');
  }

  // Default options for every CURL request
  $ret = array(
    CURLOPT_URL => $request->url,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_TIMEOUT => isset($this->config['request_timeout']) ? $this->config['request_timeout'] : 5,
    CURLOPT_HTTPHEADER => array(),
    CURLOPT_HEADER => TRUE,
    CURLINFO_HEADER_OUT => TRUE,
  );
  if (!empty($url['port'])) {
    $ret[CURLOPT_PORT] = $url['port'];
  }
  if ($request->data && empty($request->http_headers['Content-Length'])) {
    $ret[CURLOPT_HTTPHEADER][] = 'Content-Length: ' . strlen($request->data);
  }
  foreach ($request->http_headers as $name => $value) {
    if (is_string($name)) {
      $ret[CURLOPT_HTTPHEADER][] = $name . ': ' . $value;
    }
    else {
      $ret[CURLOPT_HTTPHEADER][] = $value;
    }
  }

  // Optionally we can skip SSL verification
  if (isset($this->config['ssl_verifypeer_skip']) && $this->config['ssl_verifypeer_skip']) {
    $ret[CURLOPT_SSL_VERIFYPEER] = FALSE;
    $ret[CURLOPT_SSL_VERIFYHOST] = FALSE;
  }
  return $ret;
}