【发布时间】:2019-12-15 18:07:59
【问题描述】:
当我向 ODataController 发送 POST 请求时,记录被插入到表中,但我收到以下错误“远程服务器返回错误:(406) 不可接受。”对同一控制器的 GET 调用工作得很好。
我尝试访问的 URL 是 http://localhost:24419/User 和用于 POST 的 JSON 正文。 我发布了以下 JSON(重命名属性):
{
"User_ID":0,
"User_Name":"email@domain.com",
"First_Name":null,
"Middle_Name":null,
"Last_Name":null,
"Telephone_Number":null,
"Alternate_Email":null,
"Record_Update_UTC_Datetime":"2019-08-06T19:42:59.5380526Z",
"Record_Update_Application_User_Name":"username",
}
适用于以下型号
public class User
{
[Key]
public int User_ID { get; set; }
[Required]
[StringLength(255)]
public string User_Name { get; set; }
[StringLength(32)]
public string First_Name { get; set; }
[StringLength(32)]
public string Middle_Name { get; set; }
[StringLength(64)]
public string Last_Name { get; set; }
[StringLength(64)]
public string Telephone_Number { get; set; }
[StringLength(255)]
public string Alternate_Email { get; set; }
[Required]
public DateTime Record_Update_UTC_Datetime { get; set; }
[Required]
[StringLength(128)]
public string Record_Update_Application_User_Name { get; set; }
}
下面是控制器:
public class UserController : ODataController
{
[HttpGet]
[EnableQuery(MaxExpansionDepth = 10, PageSize = 50, MaxNodeCount = 50)]
public async Task<IHttpActionResult> GetUser()
{
var results = await _userService.GetUsers();
return results.MakeWebApiActionResult(this);
}
public async Task<IHttpActionResult> Post([FromBody] User user)
{
var results = await _userService.AddUser(user);
return Ok(results);
}
}
我希望得到 200 OK 响应,但实际输出是:
"ExceptionMessage": "远程服务器返回错误:(406) Not Acceptable。"
【问题讨论】:
-
检查 reequest-header 的定义以及是否可以接受
-
您可以添加您要发布的 JSON 内容吗?
-
@JohnB 更新了我的问题
-
@JohnB 请求标头看起来不错。 {内容类型:应用程序/json; charset=utf-8 主机:localhost:24419 内容长度:1123 预期:100-继续连接:保持活动状态}
-
也许它只接受
text(不接受json)
标签: c# asp.net-web-api odata asp.net-web-api-routing asp.net-web-api-odata