【问题标题】:Odata Put JSON Request Body ErrorOdata Put JSON 请求正文错误
【发布时间】:2014-04-02 08:03:35
【问题描述】:

我正在尝试使用 Fiddler 创建 PUT 请求,但我不断收到如下错误。

PUT Request
https://127.0.0.1/odata/ControllerName('param')

Request Header
Accept: application/json;odata=minimalmetadata
Host: 127.0.0.1
Authorization: ApiKey uniqueKey
Content-Type: application/json;odata=minimalmetadata
Accept-Charset: UTF-8

RequestBody
{"Name":"param"}

当我尝试 PUT 时,它返回状态码 400。当我在提琴手中双击错误并查看 JSON 选项卡时,它给了我以下错误。

odata.error
     innererror
         message=actionParameters : The last segment of the request URI 'ControllerName('param')' was not recognized as an OData action.

我哪里出错了,URI 格式或请求正文?

【问题讨论】:

  • 根据错误信息,您的网址无效。你确定语法不像https://127.0.0.1/MyController?Param
  • 我使用的是 Odata 而不是 Api。
  • 查询同一个网址会有什么反应?

标签: odata fiddler asp.net-web-api


【解决方案1】:

根据OData协议, 实体集后面括号内的值(对应控制器)必须是键,例如:

  1. ~/odata/Products(1) 如果键是 int 类型,
  2. ~/odata/Products('1') 如果键是字符串类型。

所以请确保在您的情况下密钥是字符串类型,并尝试

GET https://127.0.0.1/odata/ControllerName('param') 

查看响应是否符合预期。

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多