Jump to content
  • 0

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


Max Agapov

Question

Всем добра! 

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

/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

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
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
Link to comment
Share on other sites

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...