【问题标题】:"404Not Found" error when testing a Rest API by PostmanPostman 测试 Rest API 时出现“404 Not Found”错误
【发布时间】:2021-01-12 23:47:21
【问题描述】:

我有一个用 c# 编写的非常简单的 Rest API:

namespace Test.Controllers
{
    [Route("api/[action]")]
    [ApiController]
    public class NewController : ControllerBase
    {
        [HttpGet]
        public bool stringCheck(string value)
        {
            if (value.Contains("love"))
                return true;
            else
                return false;
        }
    }
}

这是我在 Postman 中使用的命令:

http://localhost:5000/api/stringcheck?str=my love

我没有收到任何编译器错误,但无论我在 Postman 中作为 value 传递什么,我总是得到 404。我该怎么办?

【问题讨论】:

  • 这并不是您使用 Postman 的真正方式。我认为,您是这个 API 构建的新手。我没有答案,因为这不是错误。您只是错误地使用了 Postman 和 API 服务器。 404 只是意味着,邮递员无法获取您要查找的内容,而 API 服务器正在告诉您,您做错了。我在这里有一个演示 API 服务器 - github.com/Jay-study-nildana/APIServerDotNetCoreWithAuth0。试一试,了解基础知识。
  • 我认为您的查询参数错误。你在 str 应该是值的时候使用它。
  • @TimFreese。谢谢。我纠正了这个错误,但问题仍然存在。

标签: c# .net api rest postman


【解决方案1】:

问题出在您的[Route] 值上,您不能使用控制器上面的[Route("api/[action]")],因为它可能会导致歧义,您需要稍作更改才能获得结果,更改也指定了controller ,如下所示:

[ApiController]
[Route("api/[controller]/[action]")]
public class NewController : ControllerBase

并注意 queryString 参数应该与方法参数完全相同,所以在 postman 中你应该调用下面的 URL 来获取结果:

http://localhost:5000/api/new/stringcheck?value=hamed

随意提问。祝你好运。

【讨论】:

  • 谢谢。我按照你说的做了,还是没变。 @Hamed Moghadasi
猜你喜欢
  • 1970-01-01
  • 2014-06-18
  • 2017-10-19
  • 2020-09-26
  • 2018-10-27
  • 2012-09-27
  • 1970-01-01
  • 2017-09-03
  • 2015-08-11
相关资源
最近更新 更多