为什么我的WebApi中收到响应状态代码204 No Content?

时间:2019-09-10 18:16:10

标签: c# rest api web-services http-status-codes

首先,我的英语不太好,希望您能理解我的意思。

我是WebApi的新手。我创建了一个,一切似乎都很好。在我的函数中,我返回一个字符串,但是当我用Postman测试Web api时,它返回状态码 204 no content 。 我查找了这种状态,显然我的请求已成功,但是当我查看数据库时,什么都没发生。 (我的函数将一些数据保存在数据库中,无论是否成功,都会返回一个字符串)。

所以,我的问题是,当我的函数必须返回字符串时,为什么会收到此状态代码?还是为什么当我用Postman测试Web Api时,如果返回的不是true(因为我的数据库中未保存任何内容),它会返回204 No Content代码(这意味着我的请求已成功)?

这是我在网络api中的功能:


    [HttpPost]
    public string IncomingPO(string request)
    {
      //do some stuff
      return "response as a string";
    }

我的参数“ 字符串请求”是包含XML的字符串。我将字符串作为xml读取,并对其进行了一些处理。 (例如,将xml中的某些节点保存在数据库中)。

如果所有函数都成功执行,我希望输出我的字符串,但是我什么也没收到。只有状态码204 No Content。 (何时应该真正返回内容)。 欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

它可以解决我的问题。 我唯一要做的就是指定将调用Api网站的路径。 另外,我还必须修改参数和函数的数据类型。

类似这样的东西:

[HttpPost]
[Route("api/Controller/IncomingPO")]
public HttpResponseMessage IncomingPO(HttpRequestMessage request)
{
  //do some stuff
  return new HttpResponseMessage()
            {
                Content = new StringContent("My response string", System.Text.Encoding.UTF8, "application/xml"),
                StatusCode = HttpStatusCode.OK
            };
}