Метод http.Header.Set
Метод http.Header.Set устанавливает значение заголовка HTTP.
В первый параметр мы передаем ключ заголовка, во второй параметр -
значение, которое нужно установить. Если заголовок уже существует,
его значение заменяется, а все предыдущие значения удаляются.
Синтаксис
header.Set(key, value)
Пример
Давайте создадим заголовок и установим значение для ключа "Content-Type":
package main
import (
"fmt"
"net/http"
)
func main() {
header := http.Header{}
header.Set("Content-Type", "application/json")
fmt.Println(header.Get("Content-Type"))
}
Результат выполнения кода:
"application/json"
Пример
Давайте проверим, что метод Set заменяет существующее значение
для ключа "X-Custom", а не добавляет новое:
package main
import (
"fmt"
"net/http"
)
func main() {
header := http.Header{}
header.Add("X-Custom", "value1")
header.Add("X-Custom", "value2")
header.Set("X-Custom", "value3")
fmt.Println(header.Values("X-Custom"))
}
Результат выполнения кода:
[value3]
Метод Values возвращает срез всех значений для ключа.
В результате видно, что осталось только одно значение,
установленное методом Set.
Пример
Давайте используем метод Set для установки нескольких
различных заголовков в HTTP-запросе:
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
header := http.Header{}
header.Set("Content-Type", "application/json")
header.Set("X-API-Key", "abc123")
header.Set("Accept", "application/json")
for key, values := range header {
fmt.Printf("%s: %s\n", key, strings.Join(values, ", "))
}
}
Результат выполнения кода:
"Content-Type: application/json"
"X-Api-Key: abc123"
"Accept: application/json"
Смотрите также
-
метод
http.Header.Get,
который возвращает первое значение заголовка по ключу -
метод
http.Header.Add,
который добавляет новое значение к заголовку, не удаляя существующие -
метод
http.Header.Values,
который возвращает все значения заголовка в виде среза -
метод
http.Header.Del,
который удаляет все значения заголовка по ключу