Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Тип Header: словарь с HTTP-заголовками
Тип Header
из пакета net/http
описывает словарь с HTTP-заголовками. Объявление типа:
type Header map[string][]string
Пример:
// import "net/http"
h := http.Header{
"Content-Type": {"text/html; charset=UTF-8"},
"Accept-Encoding": {"deflate", "gzip"},
}
fmt.Println(h)
// map[Accept-Encoding:[deflate gzip]
// Content-Type:[text/html; charset=UTF-8]]
for k, v := range h {
fmt.Println(k, "=>", v)
}
// Content-Type => [text/html; charset=UTF-8]
// Accept-Encoding => [deflate gzip]
Тип Header
содержит следующие методы:
Add()
— добавляет новый элемент. Если ключ уже существует, то значение добавляется в слайс, а не заменяет существующее значение. Формат метода:
(http.Header).Add(key string, value string)
Пример:
h := http.Header{}
h.Add("Content-Type", "text/html; charset=UTF-8")
h.Add("Accept-Encoding", "deflate")
h.Add("Accept-Encoding", "gzip")
fmt.Println(h)
// map[Accept-Encoding:[deflate gzip]
// Content-Type:[text/html; charset=UTF-8]]
fmt.Println(h.Get("Content-Type"))
// text/html; charset=UTF-8
fmt.Println(h.Get("Accept-Encoding")) // deflate
Set()
— добавляет новый элемент. Если ключ уже существует, то старое значение заменяется новым значением. Формат метода:
(http.Header).Set(key string, value string)
Пример:
h := http.Header{}
h.Add("Accept-Encoding", "deflate")
h.Set("Accept-Encoding", "gzip")
fmt.Println(h)
// map[Accept-Encoding:[gzip]]
fmt.Println(h.Get("Accept-Encoding")) // gzip
Get()
— возвращает первое значение по ключу. Если элемент с таким ключом не существует, то возвращается пустая строка. Сравнение ключей не зависит от регистра символов. Формат метода:
(http.Header).Get(key string) string
Пример:
h := http.Header{}
h.Add("Accept-Encoding", "deflate")
h.Add("Accept-Encoding", "gzip")
fmt.Println(h["Accept-Encoding"]) // [deflate gzip]
fmt.Println(h.Get("Accept-Encoding")) // deflate
fmt.Println(h.Get("accept-encoding")) // deflate
fmt.Printf("%q\n", h.Get("Content-Type")) // ""
Values()
— возвращает все значения по ключу. Если элемент с таким ключом не существует, то возвращается пустой слайс. Сравнение ключей не зависит от регистра символов. Возвращаемое значение копией не является. Формат метода:
(http.Header).Values(key string) []string
Пример:
h := http.Header{}
h.Add("Accept-Encoding", "deflate")
h.Add("Accept-Encoding", "gzip")
fmt.Println(h.Values("Accept-Encoding")) // [deflate gzip]
fmt.Println(h.Values("accept-encoding")) // [deflate gzip]
fmt.Printf("%q\n", h.Values("Content-Type")) // []
Del()
— удаляет элемент с указанным ключом. Сравнение ключей не зависит от регистра символов. Формат метода:
(http.Header).Del(key string)
Пример:
h := http.Header{}
h.Add("Accept-Encoding", "deflate")
fmt.Println(h) // map[Accept-Encoding:[deflate]]
h.Del("Accept-Encoding")
fmt.Println(h) // map[]
Clone()
— возвращает копию словаря. Формат метода:
(http.Header).Clone() http.Header
Пример:
h := http.Header{}
h.Add("Accept-Encoding", "deflate")
h2 := h.Clone()
fmt.Println(h2) // map[Accept-Encoding:[deflate]]
Write()
— записывает значения словаря в поток, разделяя заголовки комбинацией\r\n
. Формат метода:
(http.Header).Write(w io.Writer) error
Пример:
h := http.Header{}
h.Add("Content-Type", "text/html; charset=UTF-8")
h.Add("Accept-Encoding", "deflate")
h.Add("Accept-Encoding", "gzip")
buf := &bytes.Buffer{}
fmt.Println(h.Write(buf)) // <nil>
fmt.Printf("%q\n", buf.Bytes())
// "Accept-Encoding: deflate\r\nAccept-Encoding: gzip\r\n
// Content-Type: text/html; charset=UTF-8\r\n"
WriteSubset()
— записывает значения словаря в поток, разделяя заголовки комбинацией\r\n
. Формат метода:
(http.Header).WriteSubset(w io.Writer,
exclude map[string]bool) error
Если во втором параметре указано значение nil
, то записываются все заголовки. Если указан словарь, а в нем присутствует ключ с названием заголовка и значением true
, то заголовок не будет записан в поток. Пример:
h := http.Header{}
h.Add("Content-Type", "text/html; charset=UTF-8")
h.Add("Accept-Encoding", "deflate")
h.Add("Content-Length", "21")
buf := &bytes.Buffer{}
fmt.Println(h.WriteSubset(buf, map[string]bool{
"Accept-Encoding": true,
})) // <nil>
fmt.Printf("%q\n", buf.Bytes())
// "Content-Length: 21\r\nContent-Type: text/html;
// charset=UTF-8\r\n"
buf2 := &bytes.Buffer{}
fmt.Println(h.WriteSubset(buf2, nil)) // <nil>
fmt.Printf("%q\n", buf2.Bytes())
// "Accept-Encoding: deflate\r\nContent-Length: 21\r\n
// Content-Type: text/html; charset=UTF-8\r\n"
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов