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