是否有可能具有非空响应的204状态代码

我正在使用http模块。前端开发团队在没有结果时询问我,发送带有空列表和状态代码 204 的响应。我试过这个:


AllPosts  := logic.MergedSearchSearchPost(params)


if len(AllPosts.Posts) == 0 {

    w.WriteHeader(http.StatusNoContent)

    json.NewEncoder(w).Encode(AllPosts)

}

在这种情况下,AllPosts是这样的:


{

    "total": 0,

    "is_finished": true,

    "query_id": "c2x86XSZaU",

    "posts": null

}

问题是,将状态代码设置为204后,我无法发送任何内容。因此,响应为空。我想在上面发送带有204状态代码的AllPosts。有什么办法吗?


UYOU
浏览 95回答 1
1回答

长风秋雁

前端开发人员团队在没有结果时询问我,发送带有空列表和状态代码 204 的响应这两者是相互矛盾的。空列表是一些内容。这直接违反了HTTP标准:204 响应由标头字段后面的第一个空行终止,因为它不能包含消息正文。Go HTTP库只是不允许你这样做。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go