protected function AcquiaSearchService::prepareRequest in Acquia Connector 7.2
Same name and namespace in other branches
- 7.3 acquia_search/Acquia_Search_Service.php \AcquiaSearchService::prepareRequest()
- 7 acquia_search/Acquia_Search_Service.php \AcquiaSearchService::prepareRequest()
Modify the url and add headers appropriate to authenticate to Acquia Search.
Return value
The nonce used in the request.
3 calls to AcquiaSearchService::prepareRequest()
- AcquiaSearchService::makeServletRequest in acquia_search/
Acquia_Search_Service.php - Make a request to a servlet (a path) that's not a standard path.
- AcquiaSearchService::_sendRawGet in acquia_search/
Acquia_Search_Service.php - Central method for making a GET operation against this Solr Server
- AcquiaSearchService::_sendRawPost in acquia_search/
Acquia_Search_Service.php - Central method for making a POST operation against this Solr Server
File
- acquia_search/
Acquia_Search_Service.php, line 28
Class
- AcquiaSearchService
- Starting point for the Solr API. Represents a Solr server resource and has methods for pinging, adding, deleting, committing, optimizing and searching.
Code
protected function prepareRequest(&$url, &$options, $use_data = TRUE) {
// Add a unique request ID to the URL.
$id = uniqid();
if (!stristr($url, '?')) {
$url .= "?";
}
else {
$url .= "&";
}
$url .= 'request_id=' . $id;
// If we're hosted on Acquia, and have an Acquia request ID,
// append it to the request so that we map Solr queries to Acquia search requests.
if (isset($_ENV['HTTP_X_REQUEST_ID'])) {
$xid = empty($_ENV['HTTP_X_REQUEST_ID']) ? '-' : $_ENV['HTTP_X_REQUEST_ID'];
$url .= '&x-request-id=' . rawurlencode($xid);
}
if ($use_data && isset($options['data'])) {
list($cookie, $nonce) = acquia_search_auth_cookie($url, $options['data'], NULL, $this->env_id);
}
else {
list($cookie, $nonce) = acquia_search_auth_cookie($url, NULL, NULL, $this->env_id);
}
if (empty($cookie)) {
throw new Exception('Invalid authentication string - subscription keys expired or missing.');
}
$options['headers']['Cookie'] = $cookie;
$options['headers'] += array(
'User-Agent' => 'acquia_search/' . variable_get('acquia_search_version', '7.x'),
);
$options['context'] = acquia_agent_stream_context_create($url, 'acquia_search');
if (!$options['context']) {
throw new Exception(t("Could not create stream context"));
}
return $nonce;
}