• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/service/geoip/maxmind.php
  • Класс: BitrixMainServiceGeoIpMaxMind
  • Вызов: MaxMind::sendRequest
protected function sendRequest($ipAddress, $userId, $licenseKey)
{
	$result = new MainResult();
	$httpClient = $this->getHttpClient();
	$httpClient->setAuthorization($userId, $licenseKey);

	$httpRes = $httpClient->get($this->getEndpoint() . $ipAddress . '?pretty');

	$errors = $httpClient->getError();

	if (!$httpRes && !empty($errors))
	{
		$strError = "";

		foreach($errors as $errorCode => $errMes)
			$strError .= $errorCode.": ".$errMes;

		$result->addError(new Error($strError));
	}
	else
	{
		$status = $httpClient->getStatus();

		if ($status != 200)
			$result->addError(new Error('Http status: '.$status));

		$arRes = json_decode($httpRes, true);

		if(is_array($arRes))
		{
			if ($status == 200)
			{
				$result->setData($arRes);
			}
			else
			{
				$result->addError(new Error('['.$arRes['code'].'] '.$arRes['error']));
			}
		}
		else
		{
			$result->addError(new Error('Can't decode json result'));
		}
	}

	return $result;
}