РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1026 of 1593 menu

Метод http.Request.Cookies

Метод http.Request.Cookies возвращает срез всех cookie-файлов, которые были переданы в HTTP-запросе. Каждый cookie представлен указателем на структуру http.Cookie. Если в запросе нет ни одного cookie, метод возвращает пустой срез (не nil). В отличие от метода http.Request.Cookie, этот метод не возвращает ошибку, а просто предоставляет все доступные cookie.

Синтаксис

func (r *Request) Cookies() []*Cookie

Пример

Давайте создадим простой HTTP-сервер, который обрабатывает запрос и выводит все переданные cookie:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { cookies := r.Cookies() fmt.Printf("Total cookies: %d\n", len(cookies)) for i, c := range cookies { fmt.Printf("Cookie %d: %s = %s\n", i+1, c.Name, c.Value) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

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

"Total cookies: 2" "Cookie 1: session_id = abc123" "Cookie 2: user_pref = dark_mode"

Пример

Давайте обработаем запрос без cookie и проверим, что метод возвращает пустой срез:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { cookies := r.Cookies() if len(cookies) == 0 { fmt.Println("No cookies found in request") } else { fmt.Printf("Found %d cookies\n", len(cookies)) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

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

"No cookies found in request"

Пример

Давайте получим все cookie и найдем среди них конкретный по имени:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { cookies := r.Cookies() var token string for _, c := range cookies { if c.Name == "auth_token" { token = c.Value break } } if token != "" { fmt.Printf("Auth token found: %s\n", token) } else { fmt.Println("Auth token not found") } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

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

"Auth token found: xyz789token"

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

  • метод http.Request.Cookie,
    который возвращает конкретный cookie по имени
  • метод http.Request.AddCookie,
    который добавляет cookie к запросу
  • структуру http.Cookie,
    представляющую отдельный cookie-файл
  • функцию http.SetCookie,
    которая устанавливает cookie в ответе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить