Jump to content
  • 0

ip hotspot service-class - error code="7471107" no input


Question

Posted

Всем добра! 

Пытаюсь отправить запрос на смену класса обслуживания

/usr/bin/curl -s --digest --user admin:passwd "http://10.0.0.1/ci" -H "Content-Type: application/xml" --data-binary '
<request id="1">
        <command name="ip hotspot service-class 6">
        <mac>b4:00:cb:fa:cc:aa</mac>
        </command>
</request>'

Выходит ошибка 
<packet>
    <response id="1">
        <error code="7471107" ident="Command::Root" source="" critical="no">no input [http/ci].</error>
    </response>
</packet>
 

Документацию читал, но там не ясно как отправлять аргумент класса

Версия 3.5.6

Снимок.JPG

1 answer to this question

Recommended Posts

  • 1
Posted
17 hours ago, Max Agapov said:

<request id="1">
        <command name="ip hotspot service-class 6">
        <mac>b4:00:cb:fa:cc:aa</mac>
        </command>
</request>

Во-первых, команда называется "ip hotspot host service-class", а не "ip hotspot service-class".

Во-вторых, :facepalm: нужно подправить документацию. "6" — это аргумент с названием "service-class". То есть в /ci надо слать <service-class>6</service-class>.

<request id="1">
   <command name="ip hotspot host service-class">
     <service-class>6</service-class>
     <mac>b4:00:cb:fa:cc:aa</mac>
   </command>
</request>

В-третьих, что более важно, интерфейс /ci будет выходить из обращения, и есть пара более свежих способов.

Современный интерфейс API называется /rci. Но для удобной авторизации в нём нужно добавить прокси.

Включаем прокси

image.png

Делаем доменное имя в виде токена из набора случайных символов.

image.png

Осторожно: мы проксируем запросы на 127.0.0.1:79, где /rci доступен без пароля, поэтому для уверенности можем добавить авторизацию. Она настраивается в командной строке. Создадим пользователя с именем "api" и паролем "---password---".

(config)> ip http proxy emuxev3f-rgn3edfn-pkgc8v9n auth
Http::Proxy: "emuxev3f-rgn3edfn-pkgc8v9n": enabled authentication.

(config)> user api
Core::Authenticator: User "api" has been added.

(config-user)> tag http-proxy
Core::Authenticator: User "api" tagged with "http-proxy".

(config-user)> password ---password---
Core::Authenticator: Password set has been changed for user "api".

(config-user)> exit
Core::Configurator: Done.

(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...

Теперь возвращаемся к задаче про service-class.

/rci/parse

Принимает ввод команды в виде строки. (Строка должна быть в двойных кавычках согласно RFC.)

curl "https://emuxev3f-rgn3edfn-pkgc8v9n.giga4.keenetic.limited/rci/parse" \
	--user "api:---password---" \
	--request POST  \
	--header "Content-Type: application/json" \
	--data-ascii '"ip hotspot host b4:00:cb:fa:cc:aa service-class 6"'

/rci/ip/hotspot/host/service-class

Принимает объект JSON.

curl "https://emuxev3f-rgn3edfn-pkgc8v9n.giga4.keenetic.limited/rci/ip/hotspot/host/service-class" \
  --user "api:---password---" \
  --request POST \
  --header "Content-Type: application/json" \
  --data-ascii '{"mac":"b4:00:cb:fa:cc:aa","service-class":6}'

{
  "status": [
    {
      "status": "message",
      "code": "19008040",
      "ident": "Hotspot::Manager",
      "message": "service class \"6\" applied to host \"b4:00:cb:fa:cc:aa\"."
    }
  ]
}

 

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...