Zig Requires Chilkat v11.0.0+
Zig
HTTP POST JSON (application/json)
See more HTTP Examples
Demonstrates how to send a JSON POST using the application/json content-type.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 requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const req = try chilkat.HttpRequest.init();
defer req.deinit();
const http = try chilkat.Http.init();
defer http.deinit();
// If any custom headers need to be included with the POST, add them
// by calling SetRequestHeader
// Note: An application should never explicitly set the Content-Length header.
// The Content-Length is automatically computed and added by Chilkat.
// Here are some examples of custom headers.
// Perhaps your particular app needs some sort of custom-computed Authorization header...
http.setRequestHeader("Authorization", "my-custom-computed-auth-value");
// Another custom header for some hypothetical app:
http.setRequestHeader("X-Pass-Timestamp", "my-custom-computed-timestamp-value");
// The following "Accept" header may be set, but it really isn't necessary:
http.setRequestHeader("Accept", "application/json");
const json_text = "{ some JSON text ... }";
// To use SSL/TLS, simply use "https://" in the URL.
const resp = try chilkat.HttpResponse.init();
defer resp.deinit();
http.httpStr("POST", "http://www.someserver.com/someJsonEndpoint", json_text, "utf-8", "application/json", resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
// Display the JSON response.
std.debug.print("{s}\n", .{try resp.getBodyStr(alloc)});
}