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

Метод http.Request.AddCookie

Метод http.Request.AddCookie добавляет файл cookie к HTTP-запросу. В качестве параметра метод принимает указатель на структуру http.Cookie. Добавленные cookie будут отправлены на сервер вместе с запросом. Метод автоматически устанавливает заголовок Cookie в запросе, добавляя новое значение к уже существующим.

Синтаксис

req.AddCookie(cookie)

где req - это экземпляр http.Request, а cookie - указатель на структуру http.Cookie с именем и значением для добавления.

Пример

Давайте создадим новый HTTP-запрос и добавим к нему cookie с именем "username" и значением "john_doe":

package main import ( "fmt" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://example.com", nil) cookie := &http.Cookie{ Name: "username", Value: "john_doe", } req.AddCookie(cookie) fmt.Println(req.Header.Get("Cookie")) }

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

"username=john_doe"

Пример

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

package main import ( "fmt" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://example.com", nil) req.AddCookie(&http.Cookie{ Name: "session_id", Value: "abc123", }) req.AddCookie(&http.Cookie{ Name: "user_id", Value: "42", }) req.AddCookie(&http.Cookie{ Name: "lang", Value: "ru", }) fmt.Println(req.Header.Get("Cookie")) }

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

"session_id=abc123; user_id=42; lang=ru"

Пример

Если cookie с таким именем уже существует, то новое значение будет добавлено отдельной записью. Давайте проверим это на практике:

package main import ( "fmt" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://example.com", nil) req.AddCookie(&http.Cookie{ Name: "theme", Value: "dark", }) req.AddCookie(&http.Cookie{ Name: "theme", Value: "light", }) fmt.Println(req.Header.Get("Cookie")) }

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

"theme=dark; theme=light"

Пример

Метод AddCookie часто используется вместе с методом Cookies, который возвращает все cookie запроса. Давайте добавим cookie и сразу их проверим:

package main import ( "fmt" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://example.com", nil) req.AddCookie(&http.Cookie{ Name: "preference", Value: "dark_mode", }) cookies := req.Cookies() for _, c := range cookies { fmt.Printf("Name: %s, Value: %s\n", c.Name, c.Value) } }

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

"Name: preference, Value: dark_mode"

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

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