Sample code for 30+ languages & platforms
Zig

Socket Convenience Method: BuildHttpGetRequest

See more Socket/SSL/TLS Examples

Demonstrates the BuildHttpGetRequest 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();

    // The BuildHttpGetRequest method is a convenience method for building
    // an HTTP GET request.  Normally, an application would use Chilkat's HTTP or REST API's
    // for sending HTTP requests.

    const socket = try chilkat.Socket.init();
    defer socket.deinit();

    const url = "http://www.chilkatsoft.com/test.asp?x=123&y=456";
    var req_str: [:0]const u8 = try socket.buildHttpGetRequest(alloc, url);
    std.debug.print("{s}\n", .{req_str});
    std.debug.print("----\n", .{});

    // The result is:

    //     GET /test.asp?x=123&y=456 HTTP/1.1
    //     Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    //     Connection: keep-alive
    //     User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
    //     Accept-Language: en-us,en;q=0.5
    //     Host: www.chilkatsoft.com

    // The result is meant to look like a request from a browser.

    // The same thing can be done using the Url and HttpRequest classes, but with more flexibility.

    const req = try chilkat.HttpRequest.init();
    defer req.deinit();
    req.setFromUrl(url);
    req_str = try req.generateRequestText(alloc);
    std.debug.print("{s}\n", .{req_str});
    std.debug.print("----\n", .{});

    // The result is:

    //     GET /test.asp?x=123&y=456 HTTP/1.1
    //     Host: domain

    // Add some headers..
    req.addHeader("Host", "www.chilkatsoft.com");
    req.addHeader("Accept-Language", "en-us,en;q=0.5");
    req.addHeader("Some-Other-Header", "123456");

    req_str = try req.generateRequestText(alloc);
    std.debug.print("{s}\n", .{req_str});

    // The result is now:

    //     GET /test.asp?x=123&y=456 HTTP/1.1
    //     Host: www.chilkatsoft.com
    //     Accept-Language: en-us,en;q=0.5
    //     Some-Other-Header: 123456
}