Zig
Zig
Caching cookies in-memory.
See more HTTP Examples
Caching cookies in-memory. To automatically save cookies to an in-memory cache, set the CookieDir property equal to the keyword "memory". Also, set the SaveCookies property = _TRUE_. If the SendCookies property = _TRUE_, then any cached cookies are automatically re-sent with subsequent GETs and POSTs.Chilkat Zig Downloads
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 API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const http = try chilkat.Http.init();
defer http.deinit();
// To save cookies to an in-memory cache, set the
// CookieDir equal to "memory". Also,
// set the SaveCookies property:
http.setCookieDir("memory");
http.setSaveCookies(true);
// To cause cached cookies to be sent with
// subsequent HTTP requests, set the SendCookies
// property = true.
http.setSendCookies(true);
// Any methods that do a GET, POST, etc. will save
// cookies to the CookieDir (which in this case is an
// in-memory cache.
var html: [:0]const u8 = "";
html = try http.quickGetStr(alloc, "https://www.paypal.com/");
// To fetch the XML cookie(s) for a domain, call GetCookieXml:
const xml_str = try http.getCookieXml(alloc, "paypal.com");
std.debug.print("{s}\n", .{xml_str});
// It's content will look something like this:
// <cookies>
// <cookie key=".paypal.com,/" v="0" secure="yes">
// <navcmd>_home-general</navcmd>
// <HttpOnly />
// <cwrClyrK4LoCV1fydGbAxiNL6iG>9cz...</cwrClyrK4LoCV1fydGbAxiNL6iG>
// </cookie>
// </cookies>
// If another HTTP request is sent, the cookies should
// be added:
html = try http.quickGetStr(alloc, "https://www.paypal.com/");
// Check the LastHeader property to see the MIME header
// of the last HTTP request sent.
// The "Cookie" header field should be present.
std.debug.print("--- LastHeader ---\n", .{});
std.debug.print("{s}\n", .{try http.getLastHeader(alloc)});
}