Soup.Cookie¶
Fields¶
None
Methods¶
class |
|
class |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Details¶
- class Soup.Cookie¶
Implements HTTP cookies, as described by RFC 6265.
To have a [class`Session`] handle cookies for your appliction automatically, use a [class`CookieJar`].
name and value will be set for all cookies. If the cookie is generated from a string that appears to have no name, then name will be the empty string.
domain and path give the host or domain, and path within that host/domain, to restrict this cookie to. If domain starts with “.”, that indicates a domain (which matches the string after the “.”, or any hostname that has domain as a suffix). Otherwise, it is a hostname and must match exactly.
expires will be non-
None
if the cookie uses either the original “expires” attribute, or the newer “max-age” attribute. If expires isNone
, it indicates that neither “expires” nor “max-age” was specified, and the cookie expires at the end of the session.If http_only is set, the cookie should not be exposed to untrusted code (eg, javascript), so as to minimize the danger posed by cross-site scripting attacks.
- classmethod new(name, value, domain, path, max_age)¶
- Parameters:
- Returns:
a new
Soup.Cookie
.- Return type:
Creates a new
Soup.Cookie
with the given attributes.Use [method`Cookie`.set_secure] and [method`Cookie`.set_http_only] if you need to set those attributes on the returned cookie.
If domain starts with “.”, that indicates a domain (which matches the string after the “.”, or any hostname that has domain as a suffix). Otherwise, it is a hostname and must match exactly.
max_age is used to set the “expires” attribute on the cookie; pass -1 to not include the attribute (indicating that the cookie expires with the current session), 0 for an already-expired cookie, or a lifetime in seconds. You can use the constants
Soup.COOKIE_MAX_AGE_ONE_HOUR
,Soup.COOKIE_MAX_AGE_ONE_DAY
,Soup.COOKIE_MAX_AGE_ONE_WEEK
andSoup.COOKIE_MAX_AGE_ONE_YEAR
(or multiples thereof) to calculate this value. (If you really care about setting the exact time that the cookie will expire, use [method`Cookie`.set_expires].)As of version 3.4.0 the default value of a cookie’s same-site-policy is
Soup.SameSitePolicy.LAX
.
- classmethod parse(header, origin)¶
- Parameters:
- Returns:
a new
Soup.Cookie
, orNone
if it could not be parsed, or contained an illegal “domain” attribute for a cookie originating from origin.- Return type:
Soup.Cookie
orNone
Parses header and returns a
Soup.Cookie
.If header contains multiple cookies, only the first one will be parsed.
If header does not have “path” or “domain” attributes, they will be defaulted from origin. If origin is
None
, path will default to “/”, but domain will be left asNone
. Note that this is not a valid state for aSoup.Cookie
, and you will need to fill in some appropriate string for the domain if you want to actually make use of the cookie.As of version 3.4.0 the default value of a cookie’s same-site-policy is
Soup.SameSitePolicy.LAX
.
- applies_to_uri(uri)¶
- Parameters:
- Returns:
- Return type:
Tests if self should be sent to uri.
(At the moment, this does not check that self's domain matches uri, because it assumes that the caller has already done that. But don’t rely on that; it may change in the future.)
- copy()¶
- Returns:
a copy of self
- Return type:
Copies self.
- domain_matches(host)¶
- Parameters:
host (
str
) – a URI- Returns:
- Return type:
Checks if the self's domain and host match.
The domains match if self should be sent when making a request to host, or that self should be accepted when receiving a response from host.
- equal(cookie2)¶
- Parameters:
cookie2 (
Soup.Cookie
) – aSoup.Cookie
- Returns:
whether the cookies are equal.
- Return type:
Tests if self and cookie2 are equal.
Note that currently, this does not check that the cookie domains match. This may change in the future.
- free()¶
Frees self.
- get_expires()¶
- Returns:
self's expiration time, which is owned by self and should not be modified or freed.
- Return type:
Gets self's expiration time.
- get_http_only()¶
- Returns:
self's HttpOnly attribute
- Return type:
Gets self's HttpOnly attribute.
- get_same_site_policy()¶
- Returns:
- Return type:
Returns the same-site policy for this cookie.
- set_expires(expires)¶
- Parameters:
expires (
GLib.DateTime
) – the new expiration time, orNone
Sets self's expiration time to expires.
If expires is
None
, self will be a session cookie and will expire at the end of the client’s session.(This sets the same property as [method`Cookie`.set_max_age].)
- set_http_only(http_only)¶
- Parameters:
http_only (
bool
) – the new value for the HttpOnly attribute
Sets self's HttpOnly attribute to http_only.
If
True
, self will be marked as “http only”, meaning it should not be exposed to web page scripts or other untrusted code.
- set_max_age(max_age)¶
- Parameters:
max_age (
int
) – the new max age
Sets self's max age to max_age.
If max_age is -1, the cookie is a session cookie, and will expire at the end of the client’s session. Otherwise, it is the number of seconds until the cookie expires. You can use the constants
Soup.COOKIE_MAX_AGE_ONE_HOUR
,Soup.COOKIE_MAX_AGE_ONE_DAY
,Soup.COOKIE_MAX_AGE_ONE_WEEK
andSoup.COOKIE_MAX_AGE_ONE_YEAR
(or multiples thereof) to calculate this value. (A value of 0 indicates that the cookie should be considered already-expired.)This sets the same property as [method`Cookie`.set_expires].
- set_same_site_policy(policy)¶
- Parameters:
policy (
Soup.SameSitePolicy
) – aSoup.SameSitePolicy
When used in conjunction with [method`CookieJar`.get_cookie_list_with_same_site_info] this sets the policy of when this cookie should be exposed.
- set_secure(secure)¶
- Parameters:
secure (
bool
) – the new value for the secure attribute
Sets self's secure attribute to secure.
If
True
, self will only be transmitted from the client to the server over secure (https) connections.
- to_cookie_header()¶
- Returns:
the header
- Return type:
Serializes self in the format used by the Cookie header (ie, for returning a cookie from a [class`Session`] to a server).