我正在尝试使用POST请求访问基于JSON-RPC 2.0的简单API。必须先进行身份验证,然后才能从API访问数据。身份验证的POST请求需要一个参数name
,并且JSON对象由
"req-001"
)"authenticate"
)user
,password
和client
(client
是客户端应用程序的唯一标识符)我的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"
}
}
相反,我得到了这个
{
"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上的this question,该问题通过更改参数得以解决。就我而言,参数很好,我什至尝试了文档中的示例,但结果却相同。我还发现this question在StackOverflow上问了六个月前,没有答案,在this question上又发现了here,这是关于解析成功的响应,这也无济于事。
我找到了来源
org.apache.catalina.connector.CoyoteInputStream@69967bc3
validity child,但我不知道这对我有什么帮助。
此解析错误可能是API本身的错误,还是我的请求有问题?