Sample code for 30+ languages & platforms
Zig

Example: Http.CloseAllConnections method

See more HTTP Examples

Demonstrates how to call the CloseAllConnections 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();

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

    // Demonstrate
    const url = "https://finnhub.io/api/v1/quote?symbol={$symbol}&token={$api_key}";

    // When the request is sent, the {$symbol} is replaced with "MSFT"
    // and the {$api_key} is replaced with "1234567890ABCDEF"
    http.setUrlVar("symbol", "MSFT") catch {};
    http.setUrlVar("api_key", "1234567890ABCDEF") catch {};

    const sb_json = try chilkat.StringBuilder.init();
    defer sb_json.deinit();
    http.quickGetSb(url, sb_json) catch {
        std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
        return;
    };

    _ = http.getLastStatus();
    std.debug.print("{s}\n", .{try http.getLastResponseHeader(alloc)});

    // The response header contains this:

    // Date: Tue, 19 Aug 2025 12:18:56 GMT
    // Content-Type: application/json; charset=utf-8
    // Transfer-Encoding: chunked
    // Connection: keep-alive
    // Content-Encoding: gzip

    // The "Connection: keep-alive" header ensures the server keeps the connection open for subsequent requests.
    // If the server responds with a "Connection: close" header, it indicates the connection will be closed after the response.
    // Consequently, Chilkat will also close the connection, requiring a new one to be established for any subsequent requests to the same server.

    // If your application uses the same HTTP object instance to send requests to a different server, a new connection will be established with that server.
    // Existing connections remain open, with Chilkat maintaining up to 10 open connections.
    // If all 10 connections are in use, Chilkat will close the least recently used connection to connect to a new server.

    // Your application can explicitly close all open connections like this:
    http.closeAllConnections() catch {
        std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
        return;
    };

    std.debug.print("Success.\n", .{});
}