- Модуль: 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;
}