Zig Requires Chilkat v11.0.0+
Zig
HTTPS PUT application/x-www-form-urlencoded
See more HTTP Examples
Demonstrates two ways of sending an HTTPS PUT application/x-www-form-urlencoded request.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();
// The 1st example sends a PUT with the query params in the URL.
// The body of the request will be empty.
const url = "https://example.com/leads/12345678?uid=XXXX&apikey=YYYYYY¬es=Test_Note";
// Sends the following request:
// PUT /leads/12345678?uid=XXXX&apikey=YYYYYY¬es=Test_Note HTTP/1.1
// Host: example.com
// Accept: */*
// Accept-Encoding: gzip
// Content-Length: 0
//
const resp = try chilkat.HttpResponse.init();
defer resp.deinit();
http.httpStr("PUT", url, "", "", "application/x-www-form-urlencoded", resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
std.debug.print("Response status code = {d}\n", .{resp.getStatusCode()});
std.debug.print("Response body: {s}\n", .{try resp.getBodyStr(alloc)});
// -----------------------------------------------------------------------
// Now we send the same request, but instead the query params are in the HTTP request body.
const req = try chilkat.HttpRequest.init();
defer req.deinit();
req.setHttpVerb("PUT");
req.setPath("/leads/12345678");
req.addParam("uid", "XXXX");
req.addParam("apikey", "YYYYYY");
req.addParam("notes", "Test_Note");
// Sends the following request:
// POST /leads/12345678 HTTP/1.1
// Host: example.com
// Content-Type: application/x-www-form-urlencoded
// Content-Length: 38
//
// uid=XXXX&apikey=YYYYYY¬es=Test_Notereq.HttpVerb = "POST";
req.setHttpVerb("POST");
req.setContentType("application/x-www-form-urlencoded");
http.httpReq("https://example.com/leads/12345678", req, resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
std.debug.print("Response status code = {d}\n", .{resp.getStatusCode()});
std.debug.print("Response body: {s}\n", .{try resp.getBodyStr(alloc)});
}