Skip to content

Commit 76b567c

Browse files
committed
finished /request get
1 parent e7d97e1 commit 76b567c

1 file changed

Lines changed: 32 additions & 20 deletions

File tree

src/main/java/afd/webrequests/WebRequests.java

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package afd.webrequests;
22

3-
43
import net.fabricmc.api.ModInitializer;
54
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
65
import net.minecraft.server.command.ServerCommandSource;
@@ -13,9 +12,7 @@
1312

1413
import java.net.URI;
1514
import java.net.http.*;
16-
17-
18-
15+
import java.net.http.HttpResponse.BodyHandlers;
1916

2017
public class WebRequests implements ModInitializer {
2118
public static final String MOD_ID = "web-requests";
@@ -32,31 +29,46 @@ public void onInitialize() {
3229
// Proceed with mild caution.
3330
HttpClient httpClient = HttpClient.newHttpClient();
3431
LOGGER.info("Loaded Web Requests Mod");
35-
36-
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("request")
37-
.then(literal("get").then(argument("URL", StringArgumentType.string()).then(argument("headers", StringArgumentType.string()).executes(WebRequests::getRequest))))
38-
.then(literal("post").executes(context -> {context.getSource().sendFeedback(()-> Text.literal("Called /request with post"),false);
39-
return 1;
40-
}))));
32+
33+
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess,
34+
environment) -> dispatcher.register(literal("request")
35+
.then(literal("get").then(argument("URL", StringArgumentType.string()).then(
36+
argument("headers", StringArgumentType.string()).executes(WebRequests::getRequest))))
37+
.then(literal("post").executes(context -> {
38+
context.getSource().sendFeedback(() -> Text.literal("Called /request with post"), false);
39+
return 1;
40+
}))));
4141
}
4242

4343
public static int getRequest(CommandContext<ServerCommandSource> context) {
4444
String url = StringArgumentType.getString(context, "URL");
4545
String headers = StringArgumentType.getString(context, "headers");
46-
context.getSource().sendFeedback(() -> Text.literal("Called /request with get and value: %s".formatted(url)), false);
47-
try {
48-
HttpRequest request = HttpRequest.newBuilder()
49-
.setHeader("User-Agent","Minecraft Fabric Web Requests mod by AFancyDog [https://github.com/AFancyDog/Web-Requests]")
50-
.GET()
51-
.headers()
52-
.uri(new URI(url)).build();
53-
46+
context.getSource().sendFeedback(() -> Text.literal("Called /request with get and value: %s".formatted(url)),
47+
false);
48+
try {
49+
HttpRequest.Builder builder = HttpRequest.newBuilder()
50+
.setHeader("User-Agent",
51+
"Minecraft Fabric Web Requests mod by AFancyDog [https://github.com/AFancyDog/Web-Requests]")
52+
.GET()
53+
.uri(new URI(url));
54+
// "Header: content goes here:::X-Other-header: some stuff" splits into two
55+
// headers
56+
String[] header_list = headers.split(":::");
57+
for (String s : header_list) {
58+
String[] kv = s.split(":", 2);
59+
builder.header(kv[0], kv[1]);
60+
}
61+
HttpRequest request = builder.build();
62+
HttpResponse<String> response = HttpClient.newBuilder()
63+
.build()
64+
.send(request, BodyHandlers.ofString());
65+
LOGGER.info("Response is %s".formatted(response.statusCode()));
66+
5467
} catch (Exception error) {
5568
LOGGER.error("Get request failed with exception: %s".formatted(error));
5669

5770
}
5871
return 1;
59-
72+
6073
}
6174
}
62-

0 commit comments

Comments
 (0)