XML вывод
В интерфейсе пользователя предусмотрено вывод информации не только в формате HTML, но и в формате XML. Вывод данных в XML предоставляет более широкие возможности для унификации интерфейса и работы с ним при помощи внешних програм (Клиентская программа AMON использует именно этот способ взаимодействия).
Для преобразования вывода страницы в формат XML нужно в запрос к странице включить следующий параметр xml=1.
Пример:
https://demo.abills.net.ua:9443/index.cgi?xml=1
При вводе данных используются стандартные GET/POST HTTP запросы.
Пример информационной странички
<?xml version="1.0" encoding="windows-1251" ?> <INFO name=""> <BODY> <INFO name=""> <LOGIN>testuser</LOGIN> <DATE>2008-06-06</DATE> <TIME>10:57:43</TIME> <MENU> <SID>3JXHUvBP3SBS8b3T</SID> <MENU NAME="form_passwd" ID="17" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Password" TYPE="MAIN"/> <MENU NAME="form_info" ID="30" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="User Information" TYPE="MAIN"/> <MENU NAME="dv_user_info" ID="31" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Dialup / VPN" TYPE="MAIN"/> <MENU NAME="dv_user_stats" ID="32" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Statistics" TYPE="SUB" PARENT="31"/> <MENU NAME="dv_user_chg_tp" ID="33" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Tarif plan" TYPE="SUB" PARENT="31"/> <MENU NAME="voip_user_info" ID="34" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="VoIP" TYPE="MAIN"/> </MENU> <BODY> <INFO name=""> <TP_ID>1</TP_ID> <TP_NAME>one</TP_NAME> <TP_CHANGE> <BUTTON VALUE="index=33&sid=wi7kw6NsLmYCPgGj">Change</BUTTON> </TP_CHANGE> <SIMULTANEONSLY>0</SIMULTANEONSLY> <IP>0.0.0.0</IP> <NETMASK>255.255.255.255</NETMASK> <SPEED>0</SPEED> <CID/> <STATUS>ENABLE</STATUS> <ABON_DATE/> </INFO> </BODY> </INFO> </BODY> </INFO>
Описание констант
<MENU> - Отображает список доступных функций
<MENU NAME=«form_passwd» ID=«17» EX_ARGS=«&sid=3JXHUvBP3SBS8b3T» DESCRIBE=«Password» TYPE=«MAIN»/> - Описание ссылки на меню
NAME | Название доступной функции |
---|---|
ID | Идентификатор меню. Используется в HTTP запросе в переменной index= для перехода на пункты меню |
EX_ARGS | Дополнительный аргумент. В большенстве случаев это только ИД сессии |
TYPE | Тип. Основная или зависимая |
DESCRIBE | Описание ссылки на языке интерфейса |
<INFO name=«»>…</INFO> - Структура отображающая формы ввода/вывода информации
<MESSAGE TYPE=«err» CAPTION=«Ошибка»>Неправильный пароль</MESSAGE> - сообщение системы.
TYPE | тип сообщения |
---|---|
CAPTION | Заголовок |
Пример атворизации пользователя
Для авторизации пользователя нужно передать следующие данные:
https://yuor.host:9443/index.cgi?user=username&passwd=user_password&xml=1
При успешной атворизации система выведет меню пользователя:
<?xml version="1.0" encoding="windows-1251" ?> <INFO name=""> <BODY> <INFO name=""> <LOGIN>testuser</LOGIN> <DATE>2008-06-06</DATE> <TIME>10:57:43</TIME> <MENU> <SID>3JXHUvBP3SBS8b3T</SID> <MENU NAME="form_passwd" ID="17" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Password" TYPE="MAIN"/> <MENU NAME="form_info" ID="30" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="User Information" TYPE="MAIN"/> <MENU NAME="dv_user_info" ID="31" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Dialup / VPN" TYPE="MAIN"/> <MENU NAME="dv_user_stats" ID="32" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Statistics" TYPE="SUB" PARENT="31"/> <MENU NAME="dv_user_chg_tp" ID="33" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Tarif plan" TYPE="SUB" PARENT="31"/> <MENU NAME="voip_user_info" ID="34" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="VoIP" TYPE="MAIN"/> </MENU>
Если авторизация прошла неудачно будет выведена сообщение об ошибке
Пример:
<?xml version="1.0" encoding="windows-1251" ?> <INFO name=""> <BODY> <MESSAGE TYPE="err" CAPTION="Ошибка">Неправильный пароль</MESSAGE> <INFO name=""> <SEL_LANGUAGE> <select name="language" onChange="selectLanguage()"> <option value="french">French</option> <option value="russian-koi8-r">Russian KOI8-r</option> <option value="russian" selected="1">Русский</option> <option value="ukraine">Українська</option> <option value="bulgarian">Болгарска</option> <option value="english">English</option> </select> </SEL_LANGUAGE> </INFO> </BODY> </INFO>