Sample code for 30+ languages & platforms
Zig Requires Chilkat v11.0.0+

Example: Http.HttpParams method

Demonstrates the HttpParams method.

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 API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

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

    // Demonstrate sending a GET request with query parameters.
    const query_params = try chilkat.JsonObject.init();
    defer query_params.deinit();
    query_params.updateInt("limit", 100) catch {};
    query_params.updateString("email", "joe@example.com") catch {};
    query_params.updateString("token", "VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuLi4=") catch {};

    // Set a session log filename so we can examine the exact request that is sent.
    const session_log_path = "c:/temp/qa_output/sessionLog.txt";
    http.setSessionLogFilename(session_log_path);

    // Send the GET request to an endpoint.  We don't care about the response. The purpose of this example
    // is to see the exact HTTP request that is sent..
    const resp = try chilkat.HttpResponse.init();
    defer resp.deinit();
    http.httpParams("GET", "https://chilkatsoft.com/echo_request_body.asp", query_params, resp) catch {
        std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
        return;
    };

    const fac = try chilkat.FileAccess.init();
    defer fac.deinit();
    const session_log = try fac.readEntireTextFile(alloc, session_log_path, "utf-8");
    std.debug.print("{s}\n", .{session_log});
    try fac.fileDelete(session_log_path);

    // This is the exact GET request that was sent.
    // Notice how each query parameter is URL encoded and added to the HTTP start line of the request.

    // GET /echo_request_body.asp?limit=100&email=joe%40example.com&token=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuLi4%3D HTTP/1.1
    // Host: chilkatsoft.com
    // Accept: */*
    // Accept-Encoding: gzip
}