3. Описание MCP-сервера › 3.6 Витрина › shop_page

Открывает страницу витрины этого магазина так, как её получает посетитель, и сохраняет HTML на этом компьютере. С полем post отправляет форму.

Право

Не требуется; с debug — «Прямой доступ → Разработка → Получить конфигурацию» (AGENT_ENGINE_DEV_CONFIG): код отладчика читается из конфигурации магазина.

Параметры

Параметр Тип Что это
[url] строка адрес страницы от корня сайта, со строкой запроса: /catalog/, /?mod=melbis_basket. По умолчанию /. Полный адрес принимается, только если это адрес этого магазина
[find] строка показать места страницы, где встречается этот текст, вместо её начала
[debug] да/нет добавить отчёт отладчика
[post] объект поля формы — вызов становится отправкой формы

Значение поля post — строка, число или да/нет; список значений уходит как имя[]=… по одному на значение, пустой список не уходит вовсе. Что меняет отправка и как сохраняются её куки — «Витрина».

Ответ

{"url": "https://shop.example.com/", "debug": false, "post": null, "status": 200,
 "bytes": 9742, "time": 63, "title": "Home page",
 "file": "D:\\Melbis\\shop.example.com\\mcp\\melbis\\pages\\index.html",
 "report": null, "found": null}

Затем текстом — первые 2000 символов страницы, если не заданы ни find, ни debug.

Поле Что это
url адрес страницы, без кода отладчика
debug запрошен ли отчёт
post тело формы в том виде, в каком оно ушло: func=Plus&id=12; null при чтении
status код ответа HTTP. Страница ошибки — не отказ: она сохраняется и приходит так же
bytes размер страницы
time сколько шёл запрос, мс
title текст <title>
file где сохранена страница
report отчёт отладчика; null без debug
found найденные места; null без find

Файл страницы. Имя берётся из адреса: буквы, цифры, - и _ остаются, остальное становится _. / сохраняется как index.html, /catalog/?page=2 — как catalog_page_2.html. Каждый вызов с тем же адресом файл перезаписывает.

Отчёт

"report": {"file": "D:\\Melbis\\shop.example.com\\mcp\\melbis\\pages\\index.report.json",
           "compile": 0.0099, "sql_count": 6, "sql_time": 0.0057, "cache": true,
           "template": "default", "lang": "ru",
           "units": {"columns": ["unit", "cache_on", "cache_allow", "queries", "query_time"],
                     "rows": [["melbis_base_page", false, false, 1, 0.0008],
                              ["melbis_base_head", false, false, null, null]]}}
Поле Что это
file весь отчёт — тот JSON, который панель отладчика скачивает кнопкой «Download Reports»
compile время генерации страницы, с
sql_count, sql_time число запросов страницы и их общее время, с
cache включено ли кеширование в магазине
template, lang группа шаблонов и язык страницы
units модули страницы: cache_on — у модуля включён кеш; cache_allow — кеш модуля работает: он включён и в магазине, и у модуля, и модуль отслеживает таблицы; queries и query_time — его запросы и их время, null у модуля без запросов

Что значат числа отчёта и как его разбирать — «Средства отладки». Если файл отчёта не удалось записать, report приходит null, а текст ответа начинается с The report could not be saved: и причины.

Найденное

"found": [{"at": 873, "text": "…/statics/bundle.melbis.css?25\">…"}]

До пяти мест. at — позиция совпадения в файле страницы в байтах, считая с 1; text — совпадение и по сотне байт до и после. Регистр не учитывается у латинских букв. Пустой список — текста на странице нет.

Отказы

Ответ Когда
Only pages of this store can be fetched: … в url полный адрес другого сайта
ACCESS_DENIED… и The code of the debugger is read through engine_dev_config… debug без права «Получить конфигурацию»
The debugger has no code in this store… в магазине не задан пароль отладчика: «Проектирование → Инсталляция», поле «Пароль отладчика»
The field [<имя>] of post takes a value or a list of values… в поле post объект или список в списке
Cannot connect to …, HttpSendRequest failed, code … сайт не отвечает этому компьютеру

Подписи на оригинальном языке могут отличаться.

Общие отказы — «Ответы и отказы».