Sample code for 30+ languages & platforms
Zig

Duplicate curl POST with JSON Body

See more REST Examples

Demonstrates how to duplicate the following curl command, which sends a POST w/ a JSON body.
curl -H "Content-Type: application/json" -i https://my-store.com/wp-json/wc/v2/products/batch?consumer_key=YOUR_CONSUMER_KEY&consumer_secret=YOUR_CONSUMER_SECRET  -d @test_product.txt

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 rest = try chilkat.Rest.init();
    defer rest.deinit();

    // Connect using TLS.
    const b_auto_reconnect = true;
    try rest.connect("my-store.com", 443, true, b_auto_reconnect);

    // test_product.txt contains this string:
    const sb_json = try chilkat.StringBuilder.init();
    defer sb_json.deinit();
    sb_json.append("{\"create\": [{\"name\": \"Woo Single #1\",\"type\": \"simple\",\"regular_price\": \"21.99\"}]}") catch {};

    // Add query parameters

    // Add the Content-Type HTTP request header.
    try rest.addHeader("Content-Type", "application/json");

    const json_response_str = rest.fullRequestString(alloc, "POST", "/wp-json/wc/v2/products/batch?consumer_key=YOUR_CONSUMER_KEY&consumer_secret=YOUR_CONSUMER_SECRET", try sb_json.getAsString(alloc)) catch {
        std.debug.print("{s}\n", .{try rest.getLastErrorText(alloc)});
        return;
    };

    // Show the JSON response.  (See below for a sample JSON response.)
    std.debug.print("Json Response: {s}\n", .{json_response_str});
}