登录
首页 >  Golang >  Go问答

在HTTP响应中返回换行符

来源:stackoverflow

时间:2024-03-06 20:18:25 467浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《在HTTP响应中返回换行符》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我正在使用 go 的 net/http 库进行编码练习,开发 http 服务器。服务器应该通过 gitlab 管道中的一系列测试。我无法访问这些测试,也看不到它们是如何实现的。

问题是预期的 http 204 no content 响应的一项测试失败,如下所示:

expected an empty response body "", got "\n"

我在代码中构建响应的方式是:

// w is the http.responsewriter of the handler function.
w.writeheader(http.statusnocontent)
w.header().del("content-type")
w.write(nil)

我还尝试了 w.write(make([]byte, 0)) ,结果相同。

我正在使用curl在本地测试它,但我无法真正看到正文中返回的字符:

$ curl -i --header "Content-Type: application/x-www-form-urlencoded" --request POST --data "PARAMETER=1" host:9000/path
HTTP/1.1 204 No Content
Date: Thu, 10 Sep 2020 16:12:21 GMT

$

net/http 服务器是否实际上返回回车符,如何防止这种情况发生?谢谢。


解决方案


抱歉,我看错了代码。因为我没有有关测试的任何详细信息,所以我真的不知道测试的具体情况是什么。上面的注释是正确的,仅使用 w.WriteHeader(http.StatusNoContent) 不会在正文中产生任何回车符。无需删除Content-Type。我的错误是我使用了 http.Error(w, "", http.StatusNoContent)

今天关于《在HTTP响应中返回换行符》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

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