Object Hierarchy:

Soup.Cookie Soup.Cookie Soup.Cookie


[ CCode ( copy_function = "g_boxed_copy" , free_function = "g_boxed_free" , type_id = "soup_cookie_get_type ()" ) ]
[ Compact ]
[ Version ( since = "2.24" ) ]
public class Cookie

An HTTP cookie.

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-%NULL if the cookie uses either the original "expires" attribute, or the newer "max-age" attribute. If expires is null, 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.

Example: Cookies, sync:

public static int main (string[] args) {
// Create a session:
Soup.Session session = new Soup.Session ();

// Add a logger:
Soup.Logger logger = new Soup.Logger (Soup.LoggerLogLevel.MINIMAL, -1);
session.add_feature (logger);

// Create a cookie:
Soup.Cookie cookie = new Soup.Cookie ("soup-cookie", "my-val", "", "/", -1);
SList<Soup.Cookie> list = new SList<Soup.Cookie> ();
list.append (cookie);

// Send a request:
Soup.Message msg = new Soup.Message ("GET", "");
Soup.cookies_to_request (list, msg);
session.send_message (msg);

// Process the result:
msg.response_headers.foreach ((name, val) => {
print ("%s = %s\n", name, val);

print ("Status Code: %u\n", msg.status_code);
print ("Message length: %lld\n", msg.response_body.length);
print ("Data: \n%s\n", (string);

GLib.SList<Soup.Cookie> cookies = Soup.cookies_from_request (msg);
print ("Cookies from request: (%u)\n", cookies.length ());

foreach (Soup.Cookie c in cookies) {
print (" %s: %s\n",, c.value);

cookies = Soup.cookies_from_response (msg);
print ("Cookies from response: (%u)\n", cookies.length ());

foreach (Soup.Cookie c in cookies) {
print (" %s: %s\n",, c.value);

return 0;

valac --pkg libsoup-2.4 cookie-sample-sync.vala

Namespace: Soup
Package: libsoup-2.4


Static methods:

Creation methods: