首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.net核心的api中未找到邮递员返回404

在.net核心的api中未找到邮递员返回404
EN

Stack Overflow用户
提问于 2021-02-18 14:27:54
回答 1查看 296关注 0票数 0

net核心3.1,在post方法上,postman返回状态404 not found。注释代码就是我尝试过的。

代码语言:javascript
运行
复制
   [Route("api/Servicio")]
    public class ServicioController : Controller
    
            private readonly ApplicationDbContext _context;
    
            public ServicioController(ApplicationDbContext context)
            {
                _context = context;
            }
    
            // POST: api/PostServicio
            //[HttpPost("api/PostServicio")]
            //[HttpPost("servicio")]
            [HttpPost("api/PostServicio/{servicio}")]
            //public async Task<ActionResult<Servicio>> PostServicio([FromBody]Servicio servicio)
            public async Task<ActionResult<Servicio>> PostServicio(Servicio servicio)
            {
                _context.Servicio.Add(servicio);
                await _context.SaveChangesAsync();
                
                return CreatedAtAction(nameof(GetServicio), new { id = servicio.Id }, servicio);
            }

   // GET: api/GetServicio/5        
   [HttpGet("GetServicio/{tecnico}/{semanaDelAno}")]
   public async Task<ActionResult<Servicio>> GetServicio(string tecnico, int semanaDelAno)
   {
            var servicio = await _context.Servicio.FirstOrDefaultAsync(i => i.Tecnico == tecnico && 
              i.SemanaDelAno == semanaDelAno);

            if (servicio == null)
            {
                return NotFound();
            }

            return servicio;
   }

}

在邮递员中我有一个身体,未加工,json

代码语言:javascript
运行
复制
{
  "Tecnico":"Jhon",
  "ServicioRealizado":"Servicio1",
  "SemanaDelAno": 1,
  "Dia": "Lunes",
  "HoraInicial": 13.0,
  "HoraFinal": 15.0
}

我有这两个动作,我基本上从文档中的api教程中获得了这段代码。

更新************************************************

代码语言:javascript
运行
复制
  // POST: api/PostServicio        
        [HttpPost("PostServicio")]        
        public async Task<ActionResult<Servicio>> PostServicio([FromBody]Servicio servicio)        
        {
            _context.Servicio.Add(servicio);
            await _context.SaveChangesAsync();

            //return CreatedAtAction(nameof(GetServicio), new { tecnico = servicio.Tecnico }, new { semanaDelAno = servicio.SemanaDelAno });
            return servicio;
        }

现在它可以工作了

EN

Stack Overflow用户

回答已采纳

发布于 2021-02-18 14:41:54

请确保您的请求url为:https://localhost:portNumber/api/Servicio/api/PostServicio/xxx.xxx与{servicio}匹配。

但实际上我认为没有必要将{servicio}添加到你的HttpGet中,你从body中发布数据而不是route.So,这里的{servicio}是useless.Just,使用[HttpPost("api/PostServicio")]和请求url:https://localhost:portNumber/api/Servicio/api/PostServicio.Then通过在postman中选择原始json来发布来自body的数据。

参考资料:

https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-5.0#attribute-routing-with-http-verb-attributes

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66254710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档