- Модуль: faceid
- Путь к файлу: ~/bitrix/modules/faceid/lib/http.php
- Класс: BitrixFaceIdHttp
- Вызов: Http::query
public function query($command, $params = array(), $waitResponse = true)
{
if ($command == '' || !is_array($params))
return false;
foreach ($params as $key => $value)
{
$params[$key] = empty($value)? '#EMPTY#': $value;
}
$params['BX_COMMAND'] = $command;
$params['BX_LICENCE'] = $this->licenceCode;
$params['BX_DOMAIN'] = $this->domain;
$params['BX_TYPE'] = $this->type;
$params['BX_VERSION'] = self::VERSION;
$params = BitrixMainTextEncoding::convertEncodingArray($params, SITE_CHARSET, 'UTF-8');
$params["BX_HASH"] = self::requestSign($this->type, md5(implode("|", $params)));
Log::write(Array($this->controllerUrl, $params), 'COMMAND: '.$command);
$waitResponse = $waitResponse? true: BitrixMainConfigOption::get("faceid", "wait_response");
$httpClient = new BitrixMainWebHttpClient(array(
"socketTimeout" => 20,
"streamTimeout" => 60,
"waitResponse" => $waitResponse,
));
$httpClient->setHeader('User-Agent', 'Bitrix FaceId Client');
$response = $httpClient->post($this->controllerUrl, $params);
if (defined('FD_CONTROLLER_URL'))
{
Log::write(Array($response), 'COMMAND RESULT: '.$command);
}
if ($response === false)
{
return array('success' => false, 'result' => array(
'msg' => 'no connection with controller', 'code' => 'FAIL_CONNECT')
);
}
try
{
return BitrixMainWebJson::decode($response);
}
catch (ArgumentException $e)
{
return array('success' => false, 'result' => array(
'msg' => 'wrong response from cloud', 'code' => 'FAIL_RESPONSE')
);
}
}