Метод http.Header.Del

Метод http.Header.Del удаляет указанный заголовок из HTTP-заголовков. Он принимает один параметр - строку с именем заголовка, который необходимо удалить. Если указанный заголовок отсутствует, метод ничего не делает. Удаление происходит без учета регистра, так как заголовки HTTP регистронезависимы.

Синтаксис

goheader.Del(key)

Пример

Давайте создадим HTTP-заголовки и удалим из них заголовок 'Content-Type':

gopackage main

import (
  "fmt"
  "net/http"
)

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

  fmt.Println("Before deletion:", header)

  header.Del("Content-Type")

  fmt.Println("After deletion:", header)
}

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

go"Before deletion: map[Content-Type:[application/json] X-Request-Id:[12345]]"
"After deletion: map[X-Request-Id:[12345]]"

Пример

Давайте попробуем удалить заголовок, который отсутствует в заголовках:

gopackage main

import (
  "fmt"
  "net/http"
)

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

  fmt.Println("Before deletion:", header)

  header.Del("Authorization")

  fmt.Println("After deletion:", header)
}

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

go"Before deletion: map[Content-Type:[text/html]]"
"After deletion: map[Content-Type:[text/html]]"

Пример

Давайте покажем, что метод удаляет все значения заголовка, даже если их несколько:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  header := http.Header{}
  header.Add("Accept", "text/plain")
  header.Add("Accept", "text/html")
  header.Add("X-Custom", "value")

  fmt.Println("Before deletion:", header)

  header.Del("Accept")

  fmt.Println("After deletion:", header)
}

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

go"Before deletion: map[Accept:[text/plain text/html] X-Custom:[value]]"
"After deletion: map[X-Custom:[value]]"

Пример

Метод регистронезависим, поэтому можно удалять заголовки, указывая их имя в любом регистре:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  header := http.Header{}
  header.Set("X-Custom-Header", "value")

  fmt.Println("Before deletion:", header)

  header.Del("x-custom-header")

  fmt.Println("After deletion:", header)

  header.Set("X-Another", "test")
  header.Del("X-ANOTHER")

  fmt.Println("Final state:", header)
}

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

go"Before deletion: map[X-Custom-Header:[value]]"
"After deletion: map[]"
"Final state: map[]"

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

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