Sample code for 30+ languages & platforms
Zig

HTTP/HTTPS using SOCKS4 Proxy

See more HTTP Examples

Demonstrates how to use HTTP/HTTPS with a SOCKS4 proxy.

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 HTTP API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

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

    // Using a SOCKS4 proxy is just a matter of setting a few properties.
    // Once these properties are set, all other coding is the same as when
    // the connection is direct to the HTTP server.

    // Set the SocksVersion property = 4 for SOCKS4
    http.setSocksVersion(4);

    // Set the SocksHostname to the SOCKS proxy domain name or IP address,
    // which may be IPv4 (dotted notation) or IPv6.
    http.setSocksHostname("192.168.1.100");

    // The port where the SOCKS4 proxy is listening.
    http.setSocksPort(1080);

    // Now do whatever it is you need to do.  All communications will go through the proxy.
    const html = http.quickGetStr(alloc, "https://www.baidu.com/") catch {
        std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
        return;
    };

    std.debug.print("{s}\n", .{html});
    std.debug.print("----\n", .{});
    std.debug.print("Success!\n", .{});
}