Метод http.Header.Values
Метод http.Header.Values возвращает все значения заголовка HTTP в виде среза строк []string. В первый параметр метод принимает ключ заголовка, для которого нужно получить все значения. В отличие от метода http.Header.Get, который возвращает только первое значение, метод Values возвращает все значения, связанные с указанным ключом. Если заголовок отсутствует, метод возвращает пустой срез.
Синтаксис
header.Values(key)
Пример
Давайте создадим HTTP-заголовок с несколькими значениями для одного ключа и получим их с помощью метода Values:
package main
import (
"fmt"
"net/http"
)
func main() {
header := http.Header{}
header.Add("X-Custom", "value1")
header.Add("X-Custom", "value2")
header.Add("X-Custom", "value3")
res := header.Values("X-Custom")
fmt.Println(res)
}
Результат выполнения кода:
[value1 value2 value3]
Пример
Давайте получим все значения заголовка Accept-Encoding из входящего HTTP-запроса:
package main
import (
"fmt"
"net/http"
"net/http/httptest"
)
func main() {
req := httptest.NewRequest("GET", "/", nil)
req.Header.Set("Accept-Encoding", "gzip, deflate, br")
res := req.Header.Values("Accept-Encoding")
fmt.Println(res)
}
Результат выполнения кода:
[gzip, deflate, br]
Пример
Давайте проверим, что метод Values возвращает пустой срез, если заголовок отсутствует:
package main
import (
"fmt"
"net/http"
)
func main() {
header := http.Header{}
res := header.Values("Non-Existent")
fmt.Println(res)
}
Результат выполнения кода:
[]
Смотрите также
-
метод
http.Header.Get,
который возвращает первое значение заголовка -
метод
http.Header.Set,
который устанавливает значение заголовка, заменяя все предыдущие -
метод
http.Header.Add,
который добавляет новое значение к существующему заголовку -
метод
http.Header.Del,
который удаляет все значения заголовка