Sample code for 30+ languages & platforms
Zig

Demonstrates how to Get Cookies Sent by the HTTP Server

See more HTTP Examples

This example demonstrates how to get the cookies that have been received from the HTTP server.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // This example assumes the Chilkat HTTP API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    const http = try chilkat.Http.init();
    defer http.deinit();

    // When the HTTP object's SaveCookies property is enabled, cookies received from the
    // server are saved either to the directory specified by CookieDir (where they are stored as XML files)
    // or in memory if "memory" is specified.

    http.setSaveCookies(true);
    http.setCookieDir("memory");

    // Do a few GET's
    var html: [:0]const u8 = try http.quickGetStr(alloc, "https://google.com/");
    html = try http.quickGetStr(alloc, "https://stripe.com/");

    // Examine the cookies received from each domain.
    var xml_str: [:0]const u8 = try http.getCookieXml(alloc, "google.com");
    std.debug.print("{s}\n", .{xml_str});

    // Sample output:

    // <?xml version="1.0" encoding="utf-8"?>
    // <cookies>
    //     <cookie key=".google.com,/,AEC" v="0" expire="Tue, 17-Feb-2026 11:32:20 GMT" secure="yes">
    //         <AEC>AVh_......</AEC>
    //     </cookie>
    //     <cookie key=".google.com,/,NID" v="0" expire="Fri, 20-Feb-2026 11:32:20 GMT">
    //         <NID>525=A57i.......</NID>
    //     </cookie>
    // </cookies>

    xml_str = try http.getCookieXml(alloc, "stripe.com");
    std.debug.print("{s}\n", .{xml_str});

    // Sample output:

    // <?xml version="1.0" encoding="utf-8"?>
    // <cookies>
    //     <cookie key="stripe.com,/,cid" v="0" maxAge="7776000" secure="yes">
    //         <cid>eba2891e-89e4-4aec-b9cf-e799d5b4b230</cid>
    //     </cookie>
    // </cookies>
}