为什么我的WebApi返回状态码204 No Content?

3
首先,我的英语不是很好,请理解我所说的话。
我刚接触WebApi。我创建了一个WebApi,并且一切都看起来很好。在我的函数中,我返回一个字符串,但当我使用Postman测试Web Api时,它返回状态代码204无内容。 我查找了这个状态并且请求似乎成功了,但是当我查看我的数据库时没有发生任何事情(我的函数在保存一些数据到数据库并且在成功或失败时返回一个字符串)。
所以,我的问题是,为什么当我的函数必须返回一个字符串时我收到这个状态代码?或者为什么当我用Postman测试Web Api时它返回204无内容代码(表示我的请求成功),但实际上不是这样(因为我的数据库没有保存任何东西)?
这里是我的WebApi中的函数:

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

我的参数 "string request" 是包含 XML 的字符串。我将字符串读取成 XML 并进行一些处理(例如,将 XML 中的某些节点保存到数据库中)。

如果函数执行成功或失败,我都希望返回我的字符串输出,但是我没有收到任何内容,只有状态码 204 No Content(实际应该返回内容)。 欢迎任何建议。


这是ASP.Net Core吗?还是使用完整框架的旧版本ASP.Net? - gunr2171
ASP.Net与MVC一起使用,而不是.Net Core。 - Eduardo Campos
1个回答

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
            };
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接