Web API POST方法返回HTTP / 1.1 500内部服务器错误

时间:2013-09-04 16:05:27

标签: web-services rest asp.net-mvc-4 asp.net-web-api

正如标题所说,当使用Web API的post方法时,我遇到了500内部服务器错误。 Get方法工作正常,只是在POST中出错。

我正在使用fidler发送帖子请求:

响应标题: HTTP / 1.1 500内部服务器错误

请求标题: 用户代理:Fiddler 主持人:localhost:45379 Content-Type:application / jsonContent-Length:41 内容长度:41

请求正文: { “ID用户所”= “123456789”, “用户名”= “橙色”}

以下是我的post方法代码:

     // POST api/User
     public HttpResponseMessage Postuser(user user)
     {
        if (ModelState.IsValid)
        {
            db.users.Add(user);
            db.SaveChanges();

            HttpResponseMessage response =R  equest.CreateResponse(HttpStatusCode.Created, user);
            response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = user.iduser }));
            return response;
       }
       else
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }
    }

Sooooooo可能出错了什么?为什么它不允许我发帖?

1 个答案:

答案 0 :(得分:6)

帖子中的数据不是有效的JSON对象,这是模型绑定器所期望的(Content-Type:application / json)。

{"iduser"="123456789","username"="orange"}

尝试将您的=替换为:并了解您的表现。您的代码可以在我的机器上运行,并在请求中进行了这些更改。

POST http://localhost:20377/api/test/Postuser HTTP/1.1
Host: localhost:20377
Connection: keep-alive
Content-Length: 42
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Origin: chrome-extension://fhjcajmcbmldlhcimfajhfbgofnpcjmb
Content-Type: application/json
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en;q=0.8,en-US;q=0.6,nb;q=0.4,de;q=0.2

{"iduser":"123456789","username":"orange"}