summaryrefslogtreecommitdiff
path: root/src/EasyHttp.zig
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2023-09-26 02:02:54 +0300
committerGravatar Uko Kokņevičs2023-09-26 02:19:34 +0300
commitf81f97955ad30830cde97a1693a309c87ce2ae21 (patch)
tree607a981809770e3af4e77ec86ad3495c11d984e1 /src/EasyHttp.zig
parentUpdate README (diff)
downloadzup-f81f97955ad30830cde97a1693a309c87ce2ae21.tar.gz
zup-f81f97955ad30830cde97a1693a309c87ce2ae21.tar.xz
zup-f81f97955ad30830cde97a1693a309c87ce2ae21.zip
Remove curl
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}