11package afd .webrequests ;
22
3-
43import net .fabricmc .api .ModInitializer ;
54import net .fabricmc .fabric .api .command .v2 .CommandRegistrationCallback ;
65import net .minecraft .server .command .ServerCommandSource ;
1312
1413import java .net .URI ;
1514import java .net .http .*;
16-
17-
18-
15+ import java .net .http .HttpResponse .BodyHandlers ;
1916
2017public 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