我的 Go 应用程序正在尝试修改(添加/删除)传入的请求/响应标头。我想添加具有相同名称和不同值的多个标头。但是,我不明白这怎么可能,因为来自请求/响应对象的http Header对象是一个映射,因此不允许重复的键。有没有办法做到这一点?示例:我想添加 2 个带有键标头的标头 1name=header1value=["value1","value2"]生成的标头应为header1="value1"header1="value2"而不是header1="value1,value2"
2 回答
函数式编程
TA贡献1807条经验 获得超9个赞
一个 http.标头是字符串切片的映射。切片元素表示由映射键命名的标题的不同值。
使用 Header.Add 为给定标头添加多个值。
h.Add("Header1", "value1")
h.Add("Header1", "value2")
标头将作为以下内容写入网络:
Header1: value1
Header1: value2
另一种方法是直接设置 map 元素:
h["Header1"] = []string{"value1", "value2"}
绝地无双
TA贡献1946条经验 获得超4个赞
根据您的问题,您并不完全清楚自己想要什么,因为您声称想要的输出根本不是有效的标头。
但我可以告诉你的是,使用标准包,你的输出将是:net/http
Header1: value1
Header1: value2
在操场上看到它。
请注意,根据 HTTP 规范,这完全等效于:
Header1: value1, value2
- 2 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消