summaryrefslogtreecommitdiff
path: root/src/EasyHttp.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/EasyHttp.zig')
-rw-r--r--src/EasyHttp.zig32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/EasyHttp.zig b/src/EasyHttp.zig
new file mode 100644
index 0000000..197cf9d
--- /dev/null
+++ b/src/EasyHttp.zig
@@ -0,0 +1,32 @@
1const std = @import("std");
2
3const Allocator = std.mem.Allocator;
4const ArenaAllocator = std.heap.ArenaAllocator;
5const Client = std.http.Client;
6const Headers = std.http.Headers;
7const Reader = Request.Reader;
8const Request = Client.Request;
9const Uri = std.Uri;
10
11pub fn get(parent_allocator: Allocator, uri: Uri) ![]u8 {
12 var arena = ArenaAllocator.init(parent_allocator);
13 defer arena.deinit();
14
15 const allocator = arena.allocator();
16
17 var client = Client{
18 .allocator = allocator,
19 };
20 defer client.deinit();
21
22 var headers = Headers.init(allocator);
23 defer headers.deinit();
24
25 var request = try client.request(.GET, uri, headers, .{});
26 defer request.deinit();
27
28 try request.start();
29 try request.wait();
30
31 return request.reader().readAllAlloc(parent_allocator, std.math.maxInt(usize));
32}