public static function CleantalkHelper::api_send_request in Anti Spam by CleanTalk 7.5
Same name and namespace in other branches
- 7.4 src/CleantalkHelper.php \CleantalkHelper::api_send_request()
* Function sends raw request to API server * *
Parameters
string url of API server: * @param array data to send * @param boolean is data have to be JSON encoded or not * @param integer connect timeout * @return type
10 calls to CleantalkHelper::api_send_request()
- CleantalkHelper::api_method_send_empty_feedback in src/
CleantalkHelper.php - * Function sends empty feedback for version comparison in Dashboard * *
- CleantalkHelper::api_method__get_2s_blacklists_db in src/
CleantalkHelper.php - CleantalkHelper::api_method__get_account_status in src/
CleantalkHelper.php - * Function gets information about account * *
- CleantalkHelper::api_method__get_antispam_report in src/
CleantalkHelper.php - * Function gets spam report * *
- CleantalkHelper::api_method__get_antispam_report_breif in src/
CleantalkHelper.php - * Function gets spam statistics * *
File
- src/
CleantalkHelper.php, line 502
Class
- CleantalkHelper
- Cleantalk's hepler class
Code
public static function api_send_request($data, $url = self::URL, $isJSON = false, $timeout = 3, $ssl = false) {
$result = null;
$curl_error = false;
$original_data = $data;
if (!$isJSON) {
$data = http_build_query($data);
$data = str_replace("&", "&", $data);
}
else {
$data = json_encode($data);
}
if (function_exists('curl_init') && function_exists('json_decode')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Expect:',
));
if ($ssl === true) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
}
else {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
$result = curl_exec($ch);
if ($result === false) {
if ($ssl === false) {
return self::api_send_request($original_data, $url, $isJSON, $timeout, true);
}
$curl_error = curl_error($ch);
}
curl_close($ch);
}
else {
$curl_error = 'CURL_NOT_INSTALLED';
}
if ($curl_error) {
$opts = array(
'http' => array(
'method' => "POST",
'timeout' => $timeout,
'content' => $data,
),
);
$context = stream_context_create($opts);
$result = @file_get_contents($url, 0, $context);
}
if (!$result && $curl_error) {
return json_encode(array(
'error' => true,
'error_string' => $curl_error,
));
}
return $result;
}