не удается получить заголовок запроса

#go #go-echo

# #Вперед #go-echo

Вопрос:

Я попытался распечатать заголовок запроса с помощью echo framework, но, похоже, echo framework не загружает заголовок в context.request.Поля заголовка. Это ошибка для echo framework?

Вот основная функция, а context.Request() — это тип *http .Запрос,

 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"))
}
 

Я использую curl curl -vvv "http://127.0.0.1:12312/" для тестирования сервера, но сервер только печатает

 User-Agent
0
Accept
0
 

но на самом деле, curl выдает следующее в качестве информации заголовка

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

Ответ №1:

         for value := range values {
 

Использование range в списке возвращает index, value . Вы запрашиваете только index то, что есть 0 во всех случаях. Чтобы получить фактические значения, используйте

         for _,value := range values {
 

Ответ №2:

Поскольку я не могу отредактировать @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"))
}