Почему проверка подлинности curl json не работает? - PullRequest
0 голосов
/ 04 ноября 2018

Когда я использую этот код для аутентификации:

curl -d -H "Accept: application/json" \
{"id":"1","method":"authenticate","params":{"user":"USER","password":"PASSWORD","client":"CLIENT", "?school":"htl-donaustadt"},"jsonrpc":"2.0"} \
https://melete.webuntis.com/WebUntis/jsonrpc.do?school=htl-donaustadt \
--insecure

Я получаю это сообщение об ошибке:

curl: (3) [globbing] непревзойденная близкая скобка / скобка в столбце 27

{"jsonrpc": "2.0", "id": null, "error": {"code": - 32700, "message": "Ошибка разбора: нет содержимого для сопоставления из-за конца ввода \ n в [Source: org.apache.catalina.connector.CoyoteInputStream@102d63fc; строка: 1, столбец: 0] "}}

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Согласно некоторым непубличным документам, вам нужно сделать запрос к https://server.webuntis.com/WebUntis/jsonrpc.do?school=School+name url с этим телом. Извините, я не могу поделиться с вами документацией. Я думаю, что вы можете запросить его в справочной службе Untis.

{
    "params": {
        "user": "xxx_user",
        "password": "xxx_password",
        "client": "Roostersync proxy"
    },
    "id": "random_id_here",
    "method": "authenticate",
    "jsonrpc": "2.0"
}

Или команда curl

curl -X POST \
  'https://melete.webuntis.com/WebUntis/jsonrpc.do?school=htl-donaustadt' \
  -H 'Content-Type: application/json' \
  -d '{
    "params": {
        "user": "user",
        "password": "password",
        "client": "Your client name"
    },
    "id": "7e6431bc-36c2-4118-991d-6459ab5b01e2",
    "method": "authenticate",
    "jsonrpc": "2.0"
}'
0 голосов
/ 04 ноября 2018

К данным POST в формате JSON добавьте -H "Content-Type: application/json". Без этого curl будет использовать application/x-www-form-urlencoded.

Данные публикации JSON также необходимо заключать в кавычки и устанавливать сразу после флага -d.

На основании исходной команды попробуйте:

curl -H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":"1","method":"authenticate","params":{"user":"USER","password":"PASSWORD","client":"CLIENT", "?school":"htl-donaustadt"},"jsonrpc":"2.0"}' \
'https://melete.webuntis.com/WebUntis/jsonrpc.do?school=htl-donaustadt' \
--insecure
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...