Yandex Metrika
sanches.free 19 просмотров

HttpRequest в D7: доступ к GET/POST, JSON, cookie и метаданным запроса

Получить объект

$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();

Основные геттеры

  • get($name) — аналог попадания в $_REQUEST.
  • getPost / getQuery — раздельно POST и GET.
  • getFile($name) — загруженный файл.
  • getCookie — с префиксом из настроек главного модуля; getCookieRaw без префикса.

Списки параметров

$postBag = $request->getPostList();
$queryBag = $request->getQueryList();
$fileBag = $request->getFileList();
$cookieBag = $request->getCookieList();

JSON

if ($request->isJson()) {
    $request->decodeJson();
}
$jsonBag = $request->getJsonList();
$value = $request->getJsonList()->get('key');

Системные поля и заголовки

getSystemParameters() возвращает служебные имена вида авторизации из запроса. Для географии клиента есть getRemoteAddress, для UA — getUserAgent, для языков — getAcceptedLanguages().

URI и режим админки

  • getRequestUri() — текущая страница по смыслу GetCurPageParam().
  • getDecodedUri() — с учётом кодировки пути.
  • getRequestedPage()/getRequestedPageDirectory() — путь без параметров и каталог.
  • isHttps(), isAjaxRequest(), isAdminSection() — типовые признаки.

Модификация query-string

$request->modifyByQueryString('a=1&b=2');

Итог

HttpRequest централизует доступ к входным данным и снимает необходимость читать суперглобальные массивы напрямую, сохраняя поведение битриксового контекста (префиксы cookie, админские флаги и т.д.).

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии