Zig
Zig
Socket Convenience Method: BuildHttpGetRequest
See more Socket/SSL/TLS Examples
Demonstrates the BuildHttpGetRequest method.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// The BuildHttpGetRequest method is a convenience method for building
// an HTTP GET request. Normally, an application would use Chilkat's HTTP or REST API's
// for sending HTTP requests.
const socket = try chilkat.Socket.init();
defer socket.deinit();
const url = "http://www.chilkatsoft.com/test.asp?x=123&y=456";
var req_str: [:0]const u8 = try socket.buildHttpGetRequest(alloc, url);
std.debug.print("{s}\n", .{req_str});
std.debug.print("----\n", .{});
// The result is:
// GET /test.asp?x=123&y=456 HTTP/1.1
// Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
// Connection: keep-alive
// User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
// Accept-Language: en-us,en;q=0.5
// Host: www.chilkatsoft.com
// The result is meant to look like a request from a browser.
// The same thing can be done using the Url and HttpRequest classes, but with more flexibility.
const req = try chilkat.HttpRequest.init();
defer req.deinit();
req.setFromUrl(url);
req_str = try req.generateRequestText(alloc);
std.debug.print("{s}\n", .{req_str});
std.debug.print("----\n", .{});
// The result is:
// GET /test.asp?x=123&y=456 HTTP/1.1
// Host: domain
// Add some headers..
req.addHeader("Host", "www.chilkatsoft.com");
req.addHeader("Accept-Language", "en-us,en;q=0.5");
req.addHeader("Some-Other-Header", "123456");
req_str = try req.generateRequestText(alloc);
std.debug.print("{s}\n", .{req_str});
// The result is now:
// GET /test.asp?x=123&y=456 HTTP/1.1
// Host: www.chilkatsoft.com
// Accept-Language: en-us,en;q=0.5
// Some-Other-Header: 123456
}