Zig Requires Chilkat v11.0.0+
Zig
Example: Http.HttpParams method
Demonstrates theHttpParams method.
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();
// 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
}