登录
首页 >  Golang >  Go问答

如何在 Go 中访问刚设置的 HTTP 标头的字符串值?

来源:stackoverflow

时间:2024-02-24 10:15:27 347浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《如何在 Go 中访问刚设置的 HTTP 标头的字符串值?》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我有以下令人难以置信的简单 go 代码。

package main
 
 import (
    "fmt"
    "net/http"
 )
 func main() {
    h := http.header{
        "my_id": []string{"xyz"},
    }
     fmt.println("h.get(\"my_id\") = ", h.get("my_id"))
 }

但是当我运行它时,它没有按预期工作,这是输出:

h.Get("my_id") =

为什么我无法打印出我刚刚设置的标头的值?

这里是实时代码,您可以自行查看:https://play.golang.org/p/l45lzvqd341


解决方案


header.get 使用 http.canonicalheaderkey 来查找键。如果您使用h.set或放置my_id,它将起作用。

这在 header.get 文档中进行了解释。

是的,标头只是一个 map[string][]string。因此,您始终可以通过简单的方式访问它们

if myID, ok := h["my_id"]; ok {
    fmt.Println("myID", myID)
} else {
    fmt.Println("my_id header not found")
}

好了,本文到此结束,带大家了解了《如何在 Go 中访问刚设置的 HTTP 标头的字符串值?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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