You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Postman测试登录REST API?测试遇404错误求排查

如何解决Postman测试ASP.NET Web API登录接口时的404 Not Found错误?

我看了你的代码和配置,404 Not Found通常是路由配置顺序或者Postman请求设置出了问题,下面一步步帮你排查和解决:

一、先检查路由注册顺序(最可能的原因)

你的WebApiConfig已经启用了属性路由(config.MapHttpAttributeRoutes()),这没问题,但关键是Web API路由必须在MVC路由之前注册。如果Global.asax里的注册顺序反了,MVC的默认路由会先匹配请求,导致API接口被拦截,返回404。

打开你的Global.asax.cs,确保Application_Start方法里的注册顺序是这样:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    // 第一步:注册Web API路由
    GlobalConfiguration.Configure(WebApiConfig.Register);
    // 第二步:注册MVC路由
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    // 其他配置(比如过滤器、捆绑压缩等)放在后面
}

二、确保Postman的请求设置完全正确

你的Login接口是POST方法,且用了属性路由api/Users/Login,所以Postman的请求要严格对应:

  • 请求方法:必须选POST(不能用GET或其他)
  • 请求URL:格式为 http://你的域名:端口/api/Users/Login,比如本地调试是 http://localhost:58792/api/Users/Login(替换成你自己的端口号)
  • 请求体
    1. 切换到Body标签,选择raw,然后在下拉框选JSON
    2. 输入符合Credential模型的JSON数据:
      {
        "CompanyName": "你的测试公司名",
        "UserName": "测试用户名",
        "PassWord": "测试密码"
      }
      
  • 请求头:Postman选JSON格式后会自动添加Content-Type: application/json,如果没自动加,手动在Headers里添加这个键值对(这一步很重要,否则Web API无法解析请求体)

三、其他排查点

  1. 验证路由是否正确注册:如果你的项目启用了Web API帮助页(默认模板有),可以访问http://localhost:端口/api/help,查看是否有POST api/Users/Login这个接口。如果看不到,说明路由没注册成功,回到第一步检查Global.asax的顺序。
  2. 检查IIS/调试服务器配置:确保你的调试服务器(比如IIS Express)没有阻止POST请求,或者没有设置额外的路由约束。
  3. 代码逻辑的小优化(非404原因,但建议调整):当登录失败时,你返回的是Ok(log)(也就是Ok(null)),这不符合REST规范,建议改为return Unauthorized(),前端更容易判断登录状态。

按照上面的步骤排查,应该能解决404的问题。

内容的提问来源于stack exchange,提问作者Raj

火山引擎 最新活动