Метод http.Header.Set

Метод http.Header.Set устанавливает значение заголовка HTTP. В первый параметр мы передаем ключ заголовка, во второй параметр - значение, которое нужно установить. Если заголовок уже существует, его значение заменяется, а все предыдущие значения удаляются.

Синтаксис

goheader.Set(key, value)

Пример

Давайте создадим заголовок и установим значение для ключа "Content-Type":

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  header := http.Header{}
  header.Set("Content-Type", "application/json")

  fmt.Println(header.Get("Content-Type"))
}

Результат выполнения кода:

go"application/json"

Пример

Давайте проверим, что метод Set заменяет существующее значение для ключа "X-Custom", а не добавляет новое:

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

Результат выполнения кода:

go[value3]

Метод Values возвращает срез всех значений для ключа. В результате видно, что осталось только одно значение, установленное методом Set.

Пример

Давайте используем метод Set для установки нескольких различных заголовков в HTTP-запросе:

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

Результат выполнения кода:

go"Content-Type: application/json"
"X-Api-Key: abc123"
"Accept: application/json"

Смотрите также

  • метод http.Header.Get,
    который возвращает первое значение заголовка по ключу
  • метод http.Header.Add,
    который добавляет новое значение к заголовку, не удаляя существующие
  • метод http.Header.Values,
    который возвращает все значения заголовка в виде среза
  • метод http.Header.Del,
    который удаляет все значения заголовка по ключу