«Ошибка разбора: нет содержимого для отображения из-за конца ввода» в ответе POST.Это моя вина? - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь получить доступ к простому API на основе JSON-RPC 2.0, используя запрос POST.Прежде чем я смогу получить доступ к данным из API, я должен аутентифицировать себя.Для запроса POST для аутентификации требуется параметр name, а объект JSON состоит из

  • ИД (в данном случае "req-001" подходит)
  • метода (здесь:"authenticate")
  • параметров для метода, в данном случае user, password и client (client - это уникальный идентификатор для клиентского приложения)
  • JSON-RPC версия (2.0)

Мой объект JSON выглядит следующим образом:

{
    "id":"req-001",
    "method":"authenticate",
    "params": {
        "user":"exampleuser",
        "password":"examplepass",
        "client":"exampleclient"
    },
    "jsonrpc":"2.0"
}

, и я публикую его на

example.url/jsonrpc.do?name=example

с application/json в качестве типа контента.

В качестве ответа я должен получить

{
    "jsonrpc":"2.0",
    "id":"req-001",
    "result": {
        "sessionId":"examplesessionid",
        "data1":"exampledata",
        "data2":"exampledata"
    }
}

Вместо этого я получаю this

{
    "jsonrpc": "2.0",
    "id": null,
    "error": {
        "code": -32700,
        "message": "Parse error: No content to map due to end-of-input\n at [Source: org.apache.catalina.connector.CoyoteInputStream@69967bc3; line: 1, column: 0]"
    }
}

После исследования ошибки синтаксического анализа ближайшая проблема, которую я смог найти, была этот вопрос в StackOverflow, который был исправлен путем изменения параметров.В моем случае с параметрами все в порядке, я даже попробовал пример из документации, но у меня был тот же результат.Я также нашел этот вопрос в StackOverflow, заданный 6 месяцев назад без ответов, и этот вопрос в StackOverflow, который касается анализа успешного ответа, что также не помогает мне.

Я нашел источник

org.apache.catalina.connector.CoyoteInputStream@69967bc3

здесь , но я нене вижу, как это могло бы помочь мне.

Может ли эта ошибка синтаксического анализа быть виновна в самом API или что-то не так с моим запросом?

...