Sample code for 30+ languages & platforms
Zig

Example: Http.KeepResponseBody property

Demonstrates the KeepResponseBody property.

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();

    var success: bool = false;

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

    http.setAwsAccessKey("****");
    http.setAwsSecretKey("****");

    http.setKeepResponseBody(true);

    // Here we have a Chilkat method that sends a DELETE request and returns true/false for success/failure.
    // If it fails we'll want to get the response status code and the response body.
    // The response body will be available in the LastResponseBody property
    // because we set the KeepResponseBody property to true.

    success = if (http.s3DeleteBucket("example")) true else |_| false;
    if (!success) {
        std.debug.print("response status code = {d}\n", .{http.getLastStatus()});
        std.debug.print("{s}\n", .{try http.getLastResponseBody(alloc)});
    } else {
        std.debug.print("Success: Bucket deleted.\n", .{});
    }

    // Running the code as-is with the invalid data will return a response body
    // that shows the error.

    // response status code = 403
    // <?xml version="1.0" encoding="UTF-8"?>
    // <Error>
    //   <Code>InvalidAccessKeyId</Code>
    //   <Message>The AWS Access Key Id you provided does not exist in our records.</Message>
    //   <AWSAccessKeyId>****</AWSAccessKeyId>
    //   <RequestId>Y1REHYF8B7M3E771</RequestId>
    //   <HostId>i3nf+VEHKqJ+roMNTFcQvWAbXre/wl5icQxuAN1Qsscm9iI/y8IO4z3QNxUefhcCE7hgrS8dNn9OBvKCeB3WccGLe318A4DFUQDPb11WmIg=</HostId>
    // </Error>
}