1

我尝试使用回显框架打印请求标头,但回显框架似乎没有将标头加载到 context.request.Header 字段中。这是回声框架的错误吗?

这里是main函数,context.Request()是*http.Request的一个类型,

func main() {
    server := echo.New()

    server.GET("/", func(context echo.Context) error {

        for key, values := range context.Request().Header {
            fmt.Println(key)
            for value := range values {
                fmt.Println(value)
            }
        }
        return nil
    })

    server.Logger.Fatal(server.Start(":12312"))
}

我用curlcurl -vvv "http://127.0.0.1:12312/"测试服务器,但是服务器只打印

User-Agent
0
Accept
0

但实际上,卷曲提供以下作为标题信息

> Host: 127.0.0.1:12312
> User-Agent: curl/7.64.1
> Accept: */*
4

2 回答 2

3
        for value := range values {

在列表上使用range返回index, value. 您只要求 ,index0所有情况下都是如此。要获得实际值,请使用

        for _,value := range values {
于 2020-12-09T05:30:03.753 回答
0

由于我无法编辑 @Steffen 以显示完整的代码,我将在此处添加它:

func main() {
    server := echo.New()

    server.GET("/", func(context echo.Context) error {

        for key, values := range context.Request().Header {
            fmt.Println(key)
            for _,value := range values {
                fmt.Println(value)
            }
        }
        return nil
    })

    server.Logger.Fatal(server.Start(":12312"))
}
于 2022-02-18T14:31:29.357 回答