package cookiejar
Import Path
net/http/cookiejar (on go.dev)
Dependency Relation
imports 12 packages, and imported by 0 packages
Involved Source Files
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
punycode.go
Code Examples
{
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if cookie, err := r.Cookie("Flavor"); err != nil {
http.SetCookie(w, &http.Cookie{Name: "Flavor", Value: "Chocolate Chip"})
} else {
cookie.Value = "Oatmeal Raisin"
http.SetCookie(w, cookie)
}
}))
defer ts.Close()
u, err := url.Parse(ts.URL)
if err != nil {
log.Fatal(err)
}
jar, err := cookiejar.New(&cookiejar.Options{PublicSuffixList: publicsuffix.List})
if err != nil {
log.Fatal(err)
}
client := &http.Client{
Jar: jar,
}
if _, err = client.Get(u.String()); err != nil {
log.Fatal(err)
}
fmt.Println("After 1st request:")
for _, cookie := range jar.Cookies(u) {
fmt.Printf(" %s: %s\n", cookie.Name, cookie.Value)
}
if _, err = client.Get(u.String()); err != nil {
log.Fatal(err)
}
fmt.Println("After 2nd request:")
for _, cookie := range jar.Cookies(u) {
fmt.Printf(" %s: %s\n", cookie.Name, cookie.Value)
}
}
Package-Level Type Names (total 3)
Jar implements the http.CookieJar interface from the net/http package.
Cookies implements the Cookies method of the [http.CookieJar] interface.
It returns an empty slice if the URL's scheme is not HTTP or HTTPS.
SetCookies implements the SetCookies method of the [http.CookieJar] interface.
It does nothing if the URL's scheme is not HTTP or HTTPS.
*Jar : net/http.CookieJar
func New(o *Options) (*Jar, error)
Options are the options for creating a new Jar.
PublicSuffixList is the public suffix list that determines whether
an HTTP server can set a cookie for a domain.
A nil value is valid and may be useful for testing but it is not
secure: it means that the HTTP server for foo.co.uk can set a cookie
for bar.co.uk.
func New(o *Options) (*Jar, error)
PublicSuffixList provides the public suffix of a domain. For example:
- the public suffix of "example.com" is "com",
- the public suffix of "foo1.foo2.foo3.co.uk" is "co.uk", and
- the public suffix of "bar.pvt.k12.ma.us" is "pvt.k12.ma.us".
Implementations of PublicSuffixList must be safe for concurrent use by
multiple goroutines.
An implementation that always returns "" is valid and may be useful for
testing but it is not secure: it means that the HTTP server for foo.com can
set a cookie for bar.com.
A public suffix list implementation is in the package
golang.org/x/net/publicsuffix.
PublicSuffix returns the public suffix of domain.
TODO: specify which of the caller and callee is responsible for IP
addresses, for leading and trailing dots, for case sensitivity, and
for IDN/Punycode.
String returns a description of the source of this public suffix
list. The description will typically contain something like a time
stamp or version number.
PublicSuffixList : expvar.Var
PublicSuffixList : fmt.Stringer
Package-Level Functions (only one)
New returns a new cookie jar. A nil [*Options] is equivalent to a zero
Options.
The pages are generated with Golds v0.7.0-preview. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |