登录
首页 >  Golang >  Go问答

Go Rest API 使用 GIN 框架返回 HTTP 状态码 400

来源:stackoverflow

时间:2024-02-09 10:48:20 177浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《Go Rest API 使用 GIN 框架返回 HTTP 状态码 400》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我正在尝试使用 gin 编写一个休息端点,它应该返回状态 200。我也以相同的方式对其进行编码,但得到状态 400。我的代码如下:

router.post("/parent", func(c *gin.context) {
  var parent parent
  err := c.bindjson(&parent)
  con,err := sql.open("mysql", "myuser:mypass@/mydb")
  res,err := con.exec(" insert into parent (username, mobile, email, password) values (?,?,?,?) ", parent.username, parent.mobile, parent.email, parent.password)
  id,err := res.lastinsertid()
  if err != nil {
    con.close()
  }
  c.json(200, gin.h{"success" : 1, "userid" : id})
  return
})

我总是在杜松子酒日志中得到这个:

[GIN-debug] [WARNING] Headers were already written. Wanted to override status code 400 with 200

知道我错过了什么吗? 谢谢


正确答案


可能是 c.bindjson() 错误,因为输入无效(尝试在其中添加一些日志消息以查看问题所在),并且设置 400 状态并写入标头。由于代码不会在那里终止(没有 return),它会继续 c.json(200, ...) 并尝试用 200 覆盖已写入的标头。

err := c.BindJSON(&parent)
if err != nil {
    log.Println(err)
    return
}

好了,本文到此结束,带大家了解了《Go Rest API 使用 GIN 框架返回 HTTP 状态码 400》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>