Zig
Zig
Add a Content-Length Header to MIME
See more MIME Examples
Demonstrates the Chilkat Mime.AddContentLength method, which computes the byte length of the entity's serialized body and adds or updates its Content-Length header. It takes no arguments and is a void method. The count is based on the transfer-encoded serialized body.
Note: The file path is relative to the application's current working directory. Absolute paths may also be used. Supply the path to your own file.
Background: Some protocols and consumers want a
Content-Length declaring the body size up front. This computes it correctly from the encoded body — the bytes actually written — rather than the decoded content, and updates any existing header so it stays accurate. Call it after the body is final; if you change the body afterward, call it again, or remove the header, since a stale length is worse than none.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
const mime = try chilkat.Mime.init();
defer mime.deinit();
mime.loadMimeFile("qa_data/message.eml") catch {
std.debug.print("{s}\n", .{try mime.getLastErrorText(alloc)});
return;
};
// Compute the byte length of the entity's serialized body and add (or update) its Content-Length
// header. The count is based on the transfer-encoded serialized body. It is a void method.
mime.addContentLength();
const content_length = mime.getHeaderField(alloc, "Content-Length") catch {
std.debug.print("{s}\n", .{try mime.getLastErrorText(alloc)});
return;
};
std.debug.print("Content-Length: {s}\n", .{content_length});
}