• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/sender/sms/mfmsru.php
  • Класс: BitrixMessageServiceSenderSmsMfmsRu
  • Вызов: MfmsRu::touchHpg
private function touchHpg($url, array $params): SenderResultHttpRequestResult
{
	$result = new SenderResultHttpRequestResult();
	if (!Application::getInstance()->isUtfMode())
	{
		$params = BitrixMainTextEncoding::convertEncoding($params, SITE_CHARSET, 'UTF-8');
	}

	$httpClient = new HttpClient(array(
		"socketTimeout" => $this->socketTimeout,
		"streamTimeout" => $this->streamTimeout,
		"waitResponse" => true,
	));
	$httpClient->setHeader('User-Agent', 'Bitrix24');
	$httpClient->setCharset('UTF-8');

	$answer = '';

	$url .= '?'.http_build_query($params);

	if ($httpClient->query(HttpClient::HTTP_GET, $url))
	{
		$answer = $httpClient->getResult();
	}

	if ($httpClient->getStatus() != '200')
	{
		$result->addError(new Error($answer));
	}
	else
	{
		$status = explode(';', $answer)[0];
		if ($status !== 'ok')
		{
			$result->addError(new Error($status));
		}
	}

	$result->setHttpRequest(new MessageServiceDTORequest([
		'method' => HttpClient::HTTP_GET,
		'uri' => $url,
		'headers' => method_exists($httpClient, 'getRequestHeaders') ? $httpClient->getRequestHeaders()->toArray() : [],
	]));
	$result->setHttpResponse(new MessageServiceDTOResponse([
		'statusCode' => $httpClient->getStatus(),
		'headers' => $httpClient->getHeaders()->toArray(),
		'body' => $answer,
		'error' => SenderUtil::getHttpClientErrorString($httpClient)
	]));
	$result->setData(explode(';', $answer));

	return $result;
}