3

我正在使用 GoLang 和 Gin 框架。

我需要使用没有消息正文的 204 响应代码来响应 REST API 调用。

怎么做才好?

我可以通过挖掘源代码找到什么

c.JSON(204, "")

但是服务器在这种情况下会抛出错误:

错误 #01:http:请求方法或响应状态代码不允许正文 Meta:[]

有任何想法吗?

4

3 回答 3

8

您可以使用c.AbortWithStatus(204),但需要注意的是,当您使用 abort 时,将永远不会为该请求调用其余待处理的处理程序。

或者,您可以这样做:

c.Writer.WriteHeader(204)

并让您的程序正常继续(但确保不要写出其他任何内容)

于 2014-10-23T21:22:20.910 回答
4

添加@depado评论,

c.Status(http.StatusNoContent)是实现这一目标的最简单方法。适用于gin v1.6.3

于 2020-07-23T15:06:43.243 回答
2

到目前为止,函数Abort 的原型

 func (c *Context) Abort()

您可以改用AbortWithStatus c.AbortWithStatus(204)其原型为

 func (c *Context) AbortWithStatus(code int)
于 2015-11-12T13:14:20.053 回答